Een controlestructuur in de informatica is een manier om de volgorde te bepalen waarin instructies of statements in een computerprogramma worden uitgevoerd. Het stelt de programmeur in staat om de volgorde van instructies van het programma te beïnvloeden.
Controlestructuren
Je kan drie soorten controlestructeren onderscheiden:
- sequentie;
- selectie;
- herhaling.
Controlestructuren maken het mogelijk om de stroom van het programma te beïnvloeden:
Controlestructuren helpen je om instructies die het programma moet uitvoeren op een efficiënte en leesbare manier te programmeren.
Sequentie
Een sequentie is een reeks van instructies of statements die in een specifieke volgorde worden uitgevoerd, de één na de ander.
Hoe vaak je het programma ook gebruikt, wat de invoerwaarden van de gebruiker of berekende waarden van het programma ook zijn, de instructies worden steeds in dezelfde volgorde uitgevoerd. Schematisch stelt men de sequentie als volgt voor:
Hieronder vind je de vertaling van dit schema naar pseudocode.
python statement
python statement
python statement
Pseudocode
Pseudocode is een manier om een programma te beschrijven in een gestructureerde, menselijk leesbare vorm, zonder de syntaxis van een specifieke programmeertaal te gebruiken
Alle programma’s die je tot nu toe geprogrammeerd hebt, zijn voorbeelden van sequenties van statements. Een ander voorbeeld van zo een programma waarin enkel de sequentie voorkomt vind je in het volgende codefragment:
leeftijd = int(input("Geef je leeftijd: "))
aantal = int(input("Hoe groot is vriendengroep? "))
ticketprijs = 7.50
totale_prijs = ticketprijs * aantal
print(f"De toegangsprijs voor de groep van {aantal} vrienden bedraagt € {totale_prijs}.")
In het bovenstaande codefragment is de ticketprijs steeds € 7,50. Maar wat als je dit programma wil gebruiken voor een festival? Of een pretpark? Dan is de prijs bv. afhankelijk van de leeftijd of de grootte van de groep. Het kan dus best zijn dat de ticketprijs € 7,50 is. Maar misschien is de groep vrienden jonger dan 12 en kosten tickets dan minder.
In zo een geval moet het mogelijk zijn om verschillende instructies uit te voeren, afhankelijk van de invoer van het programma of berekeningen die tijdens de uitvoering van het programma reeds gemaakt werden.
Selectie
Selectie maakt het mogelijk om beslissingen te nemen binnen een programma. Dit gebeurt op basis van een conditie of voorwaarde. Het resultaat van de conditie of voorwaarde bepaalt welk pad het programma zal volgen.
In het onderstaande schema wordt een zijsprong gemaakt, bv. wanneer de groep groot genoeg is om een korting te krijgen.
Afhankelijk van het resultaat van de conditie of voorwaarde, wordt de zijsprong uitgevoerd.
Booleaanse expressie
Een conditie of voorwaarde wordt ook een booleaanse expressie genoemd. Een booleaanse expressie levert steeds een waarheidswaarde op. Men zegt dat een booleaanse expressie naar
True
ofFalse
evalueert.
Tijdens de uitvoering van het programma wordt zo een booleaanse expressie dan geëvalueerd. Afhankelijk van de waarde voert het programma dan de bijhorende instructies of statements uit.
True
, dan voert het programma de statements in de zijsprong uit.False
, dan voert het programma de statements in de zijsprong niet uit.Nadat de eventuele zijsprong uitgevoerd werd, voert Python de statements onder de selectie uit.
Hieronder vind je de vertaling van dit schema naar pseudocode.
if booleaanse expressie:
python statement
python statement
python statement
python statement
python statement
if
.True
evalueert, schrijf je net onder
de test.Let op, alle statements die uitgevoerd moeten worden als de booleaanse expressie naar True
evalueert, laat je in
Python 1 tab of 4 spaties inspringen (indenteren) naar rechts.
Indentatie
Indentatie staat voor het inspringen van code om de structuur van het programma te visualiseren. In andere programmeertalen gebruikt men bv. accolades om code die bij elkaar hoort te visualiseren.
Stel nu dat de ticketprijs afhankelijk is van de leeftijd. Als je ouder bent dan 12 jaar betaal je € 7,50 is. In het andere geval betaal je € 5,00.
In het onderstaande schema wordt altijd een zijsprong gemaakt: bv. de rechter zijsprong indien de vriendengroep ouder is dan 12 jaar en de linker zijsprong indien de vriendgroep hoogstens 12 jaar is.
Tijdens de uitvoering van het programma wordt de booleaanse expressie geëvalueerd, waarna het programma de correcte stroom van statements uitvoert.
True
, dan voert het programma de statements in de rechter zijsprong uit.False
, dan voert het programma de statements in de linker zijsprong uit.Nadat één van beide zijsprongen uitgevoerd werd, voert Python de statements onder de selectie uit.
Hieronder vind je opnieuw de vertaling van dit schema naar pseudocode .
if booleaanse expressie:
python statement
python statement
python statement
else:
python statement
python statement
python statement
python statement
python statement
if
.True
evalueert, schrijf je net onder
de test.else:
False
evalueert, schrijf je net onder
else:
.Tweevoudige selectie
Tweevoudige selectie, ook wel bekend als een
if
-else
-statement, is een controlestructuur die toestaat dat een programma twee verschillende codeblokken uitvoert, afhankelijk of een bepaalde voorwaarde of booleaanse expressie naarTrue
ofFalse
evalueert.
- Het ene codeblok wordt uitgevoerd als de booleaanse expressie naar
True
evalueert.- Het andere codeblok wordt uitgevoerd als de booleaanse expressie naar
False
evalueert.
Merk opnieuw de indentatie op. Zo worden het if
-blok en else
-blok mooi gevisualiseerd.