3.14 Herhaling met de test vooraf

Bij programmastructuurdiagrammen bestaan er twee structuren voor het herhalingsdiagram. De ene heeft de test achteraf, de andere vooraf. De structuur met de test achteraf hebben we reeds besproken (zie paragraaf 1.8). Nu is de structuur met de test vooraf aan de beurt.

Hierna volgt twee keer een PSD met de test vooraf. De werking van de twee is gelijk. Het verschil zit hem in de formulering van de conditie.

Figuur 3.4 PSD's met de test vooraf

figuur 3.4

Bij de perform-opdracht in COBOL kunnen we de plaats van de voorwaarde aangeven met with test after of with test before. Er bestaat in COBOL echter geen keus tussen de formulering van de voorwaarde.

onthoud

COBOL kent alleen een voorwaarde met until.
COBOL kent geen while.

HERHALING: COBOL kent geen while. Een programmeur moet dus in staat zijn om een voorwaarde met zolang om te zetten naar de COBOL-vorm met totdat. Beide PSD's van figuur 3.4 leiden dus tot hetzelfde stukje programma:

display "Geef getal van 2 cijfers"
accept getal
perform with test before until getal >= 10 and getal <= 99
   display "Niet goed. Nog eens."
   accept getal
end-perform
  

In COBOL moeten we aangeven wanneer de herhaling klaar is. In het voorbeeld stoppen we met herhalen als het getal minstens 10 is en ook nog (strengere eis!) hoogstens 99.

Bij een herhaling waarbij eerst de test plaatsvindt, kan het gebeuren dat de herhaling nul keer wordt uitgevoerd. In het voorbeeld is dat het geval als de invoer meteen een goed getal is.

Het is niet verplicht om with test before of with test after te vermelden Het is toegestaan (maar wel minder duidelijk) om geen van beide vormen te schrijven.

onthoud

De vorm van perform met with test before is de zogenaamde verstekwaarde (Engels: default). Dat betekent dat de computer with test before aanneemt als geen van beide vormen is vermeld.

De opdracht

perform until getal >= 10 and getal <= 99
  

Komt dus overeen met

perform with test before until getal >= 10 and getal <= 99.
  
omslag leerboek

Serie: leerboeken informatica

Titel: Tijd voor COBOL 1

Auteur: Andree Hollander

naamlogo