Please identify each problem as shown here, with a two-letter code prefixing the exercise number.
CA13.1, that is, Exercise 13.1 in Chapter 13 of Concrete Abstractions, which appears on page 424.
CA13.3, that is, Exercise 13.3 in Chapter 13 of Concrete Abstractions, which appears on page 428.
MX5.1 (based on CA Section 10.2): Use EBNF to define 〈intnest〉 as described below. You may assume that 〈integer〉 is already defined; we will be defining it in class.
An 〈integer〉 is an 〈intnest〉.
A list in Python syntax is an 〈intnest〉 if each of its elements is an 〈intnest〉.
This includes the empty list, [].
For nonempty lists such as [1,2,3] or [[],[1],[1,2]], the list must be surrounded in brackets and the elements must be separated by commas. (Another way of saying this is that each element after the first must be preceded by a comma.)
MX5.2 (based on TP Chapter 18): Starting with the work we did in class drawing national flags, define a new class DilatableCircle that inherits from Circle and adds one new method, dilate. A DilatableCircle can be used in any of the ways a normal Circle would be. However, if dc is a DilatableCircle, then you can also give commands such as dc.dilate(2.0) or dc.dilate(0.5) which would double or halve the circle's radius, respectively.
MX5.3 (based on TP Chapter 18 and our class discussion): Starting with the work we did in class drawing national flags, define a new class MarkedCircle that inherits from Circle. A MarkedCircle can be used in any of the ways a normal Circle would be. However, when a MarkedCircle is asked to draw itself on a canvas, it behaves a little differently from a normal Circle. It draws itself the normal Circle way but then also adds a small black mark (a radius 1 circle) at the center. You should not replicate the code from the draw method in the Circle class.