Definieer een class met de naam “Punt” dat een punt voorstelt in een 2 dimentioneel vlak. Punt bevat 2 attributen, nl. x en y (reële getallen) beide met een defaultwaarde gelijk aan 0.0. Gebruik de __repr__ methode om het punt af te printen in het formaat (x, y).

Definieer een tweede class met de naam “Cirkel” waarmee cirkels kunnen voorgesteld worden in een 2 dimentioneel vlak, die gedefineerd worden door het middelpunt, een object van de class Punt, en de straal. Je maakt een kopie van het geneste object via de methode copy() uit de module copy (begin je code met “from copy import copy”)

Controleer of de straal groter is dan 0, anders heb je geen cirkel maar een punt. Ontwerp hiervoor een AssertionError (keyword assert) met de boodschap ‘ongeldige cirkel’. Gebruik de __repr__ methode om de cirkel af te printen in het formaat “cirkel: <punt>, straal=<straal>”.

Maak volgende methodes aan voor de class Cirkel:

Test je 2 classes zoals in onderstaand voorbeeld. Deze test-code moet je niet indienen in Dodona.

Voorbeeld

>>> punt1 = Punt(1.0, 3.0)
>>> print(punt1)
(1.0, 3.0)
>>> cirkel1 = Cirkel(punt1, 3.0)
>>> print(cirkel1)
cirkel: punt=(1.0, 3.0), straal=3.0
>>> print(cirkel1.omtrek())
18.84
print(cirkel1.oppervlakte())
28.26
>>> punt1 = Punt(2.0,3.0)
>>> print(cirkel1)
cirkel: punt=(1.0, 3.0), straal=3.0
>>> punt2 = Punt(5.0, 8.5)
>>> print(punt2)
(5.0, 8.5)
>>> cirkel2 = Cirkel(punt2, 2.5)
>>> print(cirkel2)
cirkel: punt=(5.0, 8.5), straal=2.5
>>> print(cirkel2.omtrek())
15.7
>>> print(cirkel2.oppervlakte())
19.62