Herhalingen
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
TP kent net als C en Rust een hele reeks aan herhalingen, veel meer dan BASIC. Door het gebruik van programma-blokken, ingesloten door Begin...End kan zo een scala aan herhalingen worden gebouwd. De mogelijkheden zijn:
While X Do <statement> herhaalt <statement> zolang X True is, als X meteen al False is, wordt <statement> nooit uitgevoerd. Let op, <statement> betreft één statement of een programma-blok. Dat is anders bij de volgende.
Repeat <programma-blok> Until X voert het hele programma-blok (zonder Begin en End) uit, test X, en als X evalueert naar False, dan wordt het proces herhaald. Ook als X vanaf het begin False is, wordt het hele blok toch éénmaal uitgevoerd.
Tot slot is er nog de mogelijkheid een vast aantal maal te herhalen.
For X := <begin> To <eind> Do <statement> kent aan X de waarde <begin> toe, voert <statement> uit, verhoogt X met 1 en herhaalt. Je kan X ook laten verlagen met 1 door To te vervangen door Downto. Je kan als index integers gebruiken, en alle andere ordinale types, inclusief enumeraties en subranges daarvan. Je mag de index niet aanpassen in het <statement>.
Daarmee is For eigenlijk een wat beperkte variant op While. Toch zit er nog wel iets in dat helpt bij het schrijven van duidelijke code. TP kent enumeraties, net als C. Minder krachtig dan in Rust, maar veel duidelijker dan in BASIC. Zo kan je schrijven:
Program EnumForDemo;
Type
Day = (Mon, Tue, Wed, Thu, Fri, Sat, Sun);
Var
D: Day;
Begin
For D := Mon To Sun Do
Writeln('Dag nummer ', Ord(D), ' is ', D);
End.
Zou je hetzelfde willen doen in BASIC dan krijg je
10 DIM Days$(6)
20 Days$(0) = "Mon": Days$(1) = "Tue": Days$(2) = "Wed"
30 Days$(3) = "Thu": Days$(4) = "Fri": Days$(5) = "Sat": Days$(6) = "Sun"
40 FOR i = 0 TO 6
50 PRINT "Dag nummer "; i; " is "; Days$(i)
60 NEXT i
C en Rust kennen wel enumeratie, maar door de manier waarop de compiler ze behandelt, moet je wat zaken zelf regelen die in TP automatisch gaan. In C krijg je dan
enum Day { Mon, Tue, Wed, Thu, Fri, Sat, Sun };
int main(void) {
for (int i = Mon; i <= Sun; i++) {
printf("Dag nummer %d is ", i);
switch (i) {
case Mon: printf("Mon"); break;
case Tue: printf("Tue"); break;
case Wed: printf("Wed"); break;
case Thu: printf("Thu"); break;
case Fri: printf("Fri"); break;
case Sat: printf("Sat"); break;
case Sun: printf("Sun"); break;
}
printf("\n");
}
return 0;
}
Gerelateerd
Bestanden in DOS
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
De diepte in met functies en procedures
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
Gestructureerde data
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
Een softwaremuseum
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
De basisstructuur
Arnout van Kempen schrijft in deze rubriek over pret maken met computers. Hij gaat aan de slag met Pascal.
