De twee laatste deelproblomen zijn ook analoog aan elkaar. In beide gevallen gaan we een verhouding krijgen van 2 getallen. Ik ga de verhouding moeten afronden naar boven. Dit zou kunnen met onderstaand algoritme:
Wanneer we gewoon de verhouding nemen
aantal = getal1/getal2
dan krijg je (in de meeste gevallen) een reëel getal als resultaat. Door gebruik te maken van de gehele delen wordt dit getal afgerond naar beneden.
aantal = getal1//getal2
In de meeste gevallen gaat getal1 niet deelbaar zijn door getal2 en gaan we het aantal met 1 moeten verhogen.
Als getal1 niet deelbaar is door getal2 dan zal de modulo (de rest) van deze twee getallen niet gelijk zijn 0.
De operator niet gelijk aan is een vergelijkings operator. We hebben reeds een aantal vergelijkings operatoren gebruikt: groter dan (>), kleiner dan (<), kleiner of gelijk aan (<=).
De vergelijkings operatoren zijn:
groter dan: >
kleinder dan: <
groter of gelijk aan: >=
kleiner of gelijk aan: <=
gelijk aan: ==
niet gelijk aan: !=
Bij het gebruik van een vergelijkings operator krijg je als resultaat de waarde true of false.
Passen we dit toe op ons algoritme
Dit geeft als resultaat
def oppervlakte(naam):
tekst = "Lengte van de "+naam+": "
l = float(input(tekst))
tekst = "Breedte van de "+naam+": "
b = float(input(tekst))
A = l * b
return A
def aantal(getal1,getal2):
n = getal1//getal2
if getal1%getal2 !=0:
n=n+1
return n
# Hoofdprogramma
A_vloer = oppervlakte("vloer")
A_tegel = oppervlakte("tegel")
n_tegels = aantal(A_vloer,A_tegel)
doos = int(input("Hoeveel tegels bevat een doos: "))
n_dozen = aantal(n_tegels,doos)
print("Je hebt",n_dozen,"nodig.")
Je hebt ook operatoren die gaan inwerken op boolse (true of false) variabelen en constanten:
EN: and
OF: or
NIET: not
Bij de and-operator zullen beide waarden true moeten zijn om als resultaat true te geven. Op het moment dat één of meerdere waarden false zijn, is het resultaat false
Bij de of-operator moet één van beide waarden true moeten zijn om als resultaat true te geven. Om als resultaat false te zijn moeten beide waarden false zijn.
En de not-operator werkt op één variabele. Hij zal true omzetten naar false, en false naar true