Mogelijke oplossing 1 (opgave staat op vorige pagina)
Mogelijke oplossing 2
Natuurlijk, als D<0, dan moet ik niet meer gaan controleren of D = 0 en D>0.
En als D niet kleiner of gelijk is aan nul, dan is automatisch D groter dan 0.
Verwerk je dit in je algoritme dan krijg je:
We hebben reeds opgemerkt dat een conditie bestaat uit een JA/NEE vraag.
In het geval van JA moet er een bepaalhet blok aan code uitgevoerd worden.
Als het antwoord NEE is moet er een andere blok code uitgevoerd worden.
We gaan dus moeten kijken wat de python code is om de conditie te testen, en hoe we een blok aan code kunnen maken.
Hieronder vind je de algemene structuur.
if <conditie>:
<instructie 1>
<instructie 2>
....
else:
<instructie A>
<instructie B>
.....
# Ongeacht wat het resultaat is van de conditie, hier loopt het script terug verder
<instructie X>
Om de conditie te testen gebruiken we dus if als instructie, gevolgd door de conditie.
Achter de conditie start dan het blok met code die moet uitgevoerd worden als het antwoord op de conditie positief is.
Dit blok start met : (dubbel punt) waarna de instructies van het blok inspringen (indentatie).
Wanneer je slechts één instructie moet uitvoeren, dan zal het blok bestaan uit één instructie.
Via het keyword else geven we aan welke code moet uitgevoerd worden wanneer de conditie een negatief antwoord heeft
Wanneer er bij een negatief antwoord niets moet uitgevoerd worden mag je het else blok weglaten
if <conditie>:
<instructie 1>
<instructie 2>
....
# Ongeacht wat het resultaat is van de conditie, hier loopt het script terug verder
We gaan in onze conditie een vergelijking moeten maken tussen 2 gegevens (bijvoorbeeld A en B)
Mogelijke vergelijkingen zijn
A groter dan B : A>B
A kleiner dan B: A<B
A gelijk aan B: A=B
A niet gelijk aan B: A≠B
A groter of gelijk aan B: A≥B
A kleiner of gelijk aan B: A≤B
Voor groter dan en kleiner dan kunnen we gebruik maken van de wiskundige tekens > en <.
Voor kleiner of gelijk aan, groter of gelijk aan, niet gelijk aan vindt je standaard geen teken op je toetsenbord en gaan we dus op zoek moeten gaan naar een andere oplossing.
Ook gelijk aan levert problemen op. Je zou verwachten dat we hiervoor het gelijkheidsteken (=) zouden gebruiken. Dit teken wordt echter al gebruikt om een waarde toe te kennen aan een variabele.
De oplossing voor deze problemen vind je hieronder
A groter dan B
>
A kleiner dan B
<
A gelijk aan B
==
A niet gelijk aan B
!=
A groter of gelijk aan B
>=
A kleiner of gelijk aan B
<=
We kennen nu alle instructies om ons algoritme om te zetten naar code.
Oefening 2.1 omzetten naar code
Het eerste gedeelte is gewoon een sequentie
# Even of oneven
getal = int(input("Geef een geheel getal: "))
Dan komen de condities
Als er geen rest is, dan moet de gewone deling en de gehelde deling gelijk zijn
if getal/2 == getal//2:
print("Even getal")
else:
print("Oneven getal")
Oefening 2.2
Ook hier starten we met de sequenties
a = float(input("Geef coëffociënt a: "))
b = float(input("Geef coëffociënt b: "))
c = float(input("Geef coëffociënt c: "))
D = b**2+4*a*c
De condities voor beide algoritmen verschillen.
De eerste manier ziet er als volgt uit:
if D<0:
print("Geen oplossingen")
if D=0:
x = (-b + D**0.5)/(2*a)
print("Twee gelijke oplossingen:",x)
if D>0:
x1 = (-b + D**0.5)/(2*a)
x2 = (-b - D**0.5)/(2*a)
print("Twee oplossingen:",x1,"en",x2)
Dit is een basisscript. Onderstaand zie je het script met een gebruiksvriendelijke interface.
#Oplossingen vierkanstsvergelijking
print("De vierkantsvergelijking heeft de vorm ax²+bx+c=0")
print("Geef de coëfficiënten in")
print()
a=int(input("a ="))
b=int(input("b ="))
c=int(input("c ="))
print()
D=b**2-4*a*c
if D<0:
print("Geen oplossingen")
if D==0:
x=(-b+D**0.5)/(2*a)
print("Twee gelijke oplossingen: ",x)
if D>0:
x1=(-b+D**0.5)/(2*a)
x2=(-b-D**0.5)/(2*a)
print("Twee oplossingen:",x1,"en",x2)
Het tweede algoritme levert een efficiëntere code:
#Oplossingen vierkanstsvergelijking
print("De vierkantsvergelijking heeft de vorm ax²+bx+c=0")
print("Geef de coëfficiënten in")
print()
a=int(input("a ="))
b=int(input("b ="))
c=int(input("c ="))
print()
D=b**2-4*a*c
if D<0:
print("Geen oplossingen")
else:
if D==0:
x=(-b+D**0.5)/(2*a)
print("Twee gelijke oplossingen: ",x)
else:
x1=(-b+D**0.5)/(2*a)
x2=(-b-D**0.5)/(2*a)
print("Twee oplossingen:",x1,"en",x2)
Mogelijke outputs zie je dan hieronder.