1 Oefeningen 2021-03-15¶
1.1 Opgave¶
Schrijf een functie volume_kubus(z) die het volume van een kubus met zijde met lengte z berekent:
v = volume_kubus(z=1)
print(v) # 1
v = volume_kubus(z=2)
print(v) # 8
v = volume_kubus(z=5.50)
print(v) # 166.375
Het volume van een kubus met zijde \(z\) bereken je als volgt:
1.2 Opgave¶
Schrijf een functie volume_cilinder(r, h) die het volume van een cilinder berekent:
v = volume_cilinder(r=1, h=1)
print(v) # 3.141592653589793
v = volume_cilinder(r=2, h=4)
print(v) # 50.26548245743669
v = volume_cilinder(r=4, h=2)
print(v) # 100.53096491487338
Het volume van een cilinder met straal \(r\) en hoogte \(h\) bereken je als volgt:
Hints:
de constante Pi zit in de module math
je kan modules importeren met import
1.3 Opgave¶
Schrijf een functie afstand(x1, y1, x2, y2) die de afstand tussen twee punten berekent:
d = afstand(x1=1, y1=2, x2=3, y2=5)
print(d) # 3.605551275463989
d = afstand(x1=1, y1=2, x2=3, y2=4)
print(d) # 2.8284271247461903
d = afstand(x1=-2, y1=3, x2=5, y2=-4)
print(d) # 9.899494936611665
De afstand tussen twee punten \((x_1,y_1)\) en \((x_2,y_2)\) bereken je als volgt:
Hints:
de functie sqrt berekent de vierkantswortel
sqrt zit in de module math
1.4 Opgave¶
Schrijf een class Televisie met 3 methods: schakel_aan, schakel_uit en status.
Je moet de class als volgt kunnen gebruiken:
tv = Televisie()
tv.schakel_aan()
tv.status() # print "aan"
tv.schakel_uit()
tv.status() # print "uit"
Hints:
vergeet niet de initialisatie functie __init__ toe te voegen
gebruik self om properties aan te maken in __init__
gebruik self om aan de properties te kunnen in de andere methods
gebruik enkel print in de status method
1.5 Opgave¶
Voeg twee methods harder en zachter toe aan je class Televisie.
Je moet de class als volgt kunnen gebruiken:
tv = Televisie()
tv.schakel_aan()
tv.status() # print "aan, volume 5"
tv.harder()
tv.harder()
tv.status() # print "aan, volume 7"
tv.zachter()
tv.status() # print "aan, volume 6"
Hints:
het standaardvolume is dus 5
maak een property voor het standaardvolume in de __init__ method
1.6 Opgave¶
Pas je class Televisie aan zodat je een foutmelding krijgt als je de televisie aan probeert te zetten als ie reeds aan staat:
tv = Televisie()
tv.schakel_aan()
tv.schakel_aan() # print "fout: reeds aan"
tv.status() # print "aan, volume 5"
tv.schakel_uit()
tv.schakel_uit() # print "fout: reeds uit"
Hint: Gebruik if-condities in de schakel_aan en schakel_uit methods.
1.7 Opgave¶
Pas je class Televisie aan zodat je kan zappen:
tv = Televisie()
tv.schakel_aan()
tv.status() # print "aan, volume 5, ?"
tv.zap("canvas")
tv.status() # print "aan, volume 5, canvas"
tv.zap("vier")
tv.status() # print "aan, volume 5, vier"
Hint:
voeg het gekozen kanaal toe als property
pas de status method aan zodat het kanaal getoond wordt
initieel stel je ‘?’ als gekozen kanaal in, om aan te geven dat nog geen kanaal gekozen werd
1.8 Opgave¶
Voeg een method __str__ toe zodat:
tv = Televisie()
tv.schakel_aan()
tv.zap("canvas")
print(tv) # print "aan, volume 5, canvas"
tv.harder()
print(tv) # print "aan, volume 6, canvas"
1.9 Opgave¶
Maak nu twee objecten aan van je class Televisie. Onderstaande code zou zonder aanpassing moeten werken mits je de vorige opgaves correct hebt geimplementeerd:
tv_living = Televisie()
tv_slaapkamer = Televisie()
tv_living.schakel_aan()
tv_living.zap("canvas")
print(tv_living) # print "aan, volume 5, canvas"
tv_slaapkamer.schakel_aan()
tv_slaapkamer.zap("vtm")
tv_slaapkamer.zachter()
print(tv_slaapkamer) # print "aan, volume 4, vtm"
print(tv_living) # print "aan, volume 5, canvas"
1.10 Opgave¶
Voeg een method stel_kanalen_in toe die als parameter een lijst krijgt:
tv = Televisie()
tv.stel_kanalen_in(["vtm", "vier", "vijf"])
tv.schakel_aan()
tv.zap("canvas") # print "error: onbekend kanaal"
tv.zap("vier")
print(tv) # print "aan, volume 5, vier"
Hints:
Voeg een property beschikbare_kanalen toe in de __init__ methode.
Stel de property beschikbare_kanalen in als je stel_kanalen_in uitvoert.
Gebruik in zap een if-conditie om te controleren of het kanaal waarnaar gezapt moet worden in de lijst met beschikbare kanalen staat.
Om te kijken of een waarde in een lijst voorkomt kan je in gebruiken.
Voorbeeld van gebruik van in:
v = [1, 2, 3, 4]
if 2 in v:
print("2 zit in de lijst")
else:
print("2 zit niet in de lijst")