Information

Deadline No deadline
Submission limit No limitation

Sign in

Klassen


Question 1: Rechthoek

Maak een klasse Rechthoek.

  1. Een rechthoek heeft een lengte, een breedte en een symbool dat we gebruiken om die te tekenen (zet het standaard op “*”). We houden ook de x en y coördinaat bij van de linkerbenedenhoek (self.x en self.y moeten dus bestaan).
  2. Schrijf een initializer (__init__) die alle velden verwacht. Een initializer of constructor moet ervoor zorgen dat het object geldig is. Welke parameters vragen extra controle? Bij een fout, geef je output aan de gebruiker wat er mis is.
  3. Een nieuwe rechthoek met x-coördinaat 1, y-coördinaat 0, lengte 2, breedte 3, en symbool *, wordt dus als volgt aangemaakt:
nieuwe_rechthoek = Rechthoek((1, 0), 2, 3, "*")
  1. Schrijf een methode oppervlakte die de oppervlakte van de rechthoek teruggeeft.
  2. Schrijf een methode omtrek die de omtrek van de rechthoek teruggeeft.
  3. Schrijf een methode verplaats die twee parameters dx en dy krijgt waarover de rechthoek verplaatst wordt.
  4. Schrijf een methode teken die de rechthoek op het scherm tekent met sterretjes. Een rechthoek met lengte 2 en breedte 3 ziet er dan als volgt uit:
***
***
Question 2: Punt

Implementeer de klasse Punt.

  1. Een punt heeft een x- en een y-coordinaat (self.x en self.y moeten dus bestaan).
  2. Schrijf een initializer die alle velden verwacht.
  3. Schrijf een methode verplaats die twee parameters dx en dy krijgt waarover het punt verplaatst wordt.
Question 3: Nieuwe Rechthoek

Maak een nieuwe klasse Rechthoek die de vorige klasse vervangt.

  1. Vervang de x- en y-coördinaten van de vorige Rechthoek klasse door een variabele positie van het type Punt en zorg dat alle vorige methodes blijven werken.
  2. Je hoeft de klasse Punt niet opnieuw definiëren.
Question 4: Gelijkheid rechthoeken

Kopieer de code van de vorige oefening (de Rechthoek klasse), voeg een methode is_gelijk toe die nakijkt of twee rechthoeken hetzelfde zijn en True teruggeeft als die gelijk zijn. De methode krijgt een andere rechthoek als parameter en kijkt na of de twee rechthoeken dezelfde hoogte, breedte en hoekpunt hebben (controleer de x- en y-coördinaten afzonderlijk).

r1 = Rechthoek(Punt(3,4),1,2, "*")
r2 = Rechthoek(Punt(3,4),1,2, "-")
r3 = Rechthoek(Punt(3,4),2,2, "o")
r1.is_gelijk(r2)
True
r1.is_gelijk(r3)
False
Question 5: Geogebra

We maken een miniversie van Geogebra om te werken met veeltermfuncties. Een veeltermfunctie van graad n kan je altijd schrijven als

\begin{equation*} f(x) = \sum^{n}_{i=0} a_i x^i \end{equation*}
  1. Maak een klasse Veeltermfunctie met een variabele naam.
  2. We houden de coëfficiënten bij in een lijst. Noem die variabele coefficienten.
  3. Maak een initializer om de coefficienten en de naam te initialiseren.
  4. Schrijf een methode berekenFunctiewaarde die een x-waarde krijgt en de functiewaarde teruggeeft.
  5. Schrijf een methode berekenAfgeleide die een nieuwe veelterm teruggeeft die de afgeleide is van de veelterm zelf. Kies een goede naam (bv de afgeleide van f wordt f').
  6. Schrijf een methode print die de veeltermfunctie op het scherm toont. Let op de spaties! Verwachte output (indien naam = f):
f(x) = -3 x^2 + 2 x^1 + -1 x^0
Question 6: Object aanmaken

Nu we de klasse Veeltermfunctie hebben gedefinieerd (de code van vorige opgave, je hoeft dit dus niet opnieuw te doen), kunnen we nu ook een object aanmaken. Maak de volgende veeltermfunctie aan:

j(x) = 7 x^2 + 3 x^1 + -2 x^0
  1. print the veeltermfunctie.
  2. Bereken de functiewaarde met x = 0, x = -5, en x = 10 (in dezelfde volgorde).
  3. Bereken de afgeleide j' en print deze