Dopo aver parlato di If..Then, Else, e dei cicli For e While..Do, terminiamo il discorso sulle strutture di controllo con Repeat..Until. La sua sintassi è la seguente:
Repeat istruzione_1; istruzione_2; istruzione_N; Until condizione;
Questo ciclo ripete le istruzioni comprese tra repeat e until , fino a quando la condizione scritta dopo until si verifica.
Da notare che tra repeat e until non ci sono begin ed end, perché già repeat indica l'inizio e until indica la fine del gruppo di istruzioni da ripetere.
Anche in questo caso occorre fare in modo che la condizione di uscita diventi vera in un qualche modo, altrimenti finiamo in una ripetizione infinita delle istruzioni, perdendo quindi il controllo del programma!!!.
Esempio. Programma che calcola il prodotto tra interi usando solo l'operazione di somma.
Il programma deve:
- chiedere all'utente due numeri;
- sommare il primo numero con se stesso tante volte quanto il secondo numero inserito;
- comunicare il prodotto;
program Prodotto; uses crt; var a,b,pro : integer; begin clrscr; writeln('Inserisci il primo numero = '); readln(a); writeln('Inserisci il secondo numero = '); readln(b); repeat pro:=pro + a; b:=b-1; until b=0; writeln('prodotto = ',pro); readln; end.
Analizziamo ora il codice:
- dichiarazione del nome del programma;
- importazione della libreria crt all'interno del programma;
- dichiarazione delle variabili a, b, pro tutte di tipo di dato integer;
- inizio del programma;
- pulizia dello schermo;
- stampa sullo schermo della stringa Inserisci il primo numero =;
- lettura del numero corrispondente al primo numero ed inserimento di tale valore nella variabile a;
- stampa sullo schermo della stringa Inserisci il secondo numero =;
- lettura del numero corrispondente al secondo numero ed inserimento di tale valore nella variabile b;
- inizio del ciclo;
- assegnazione alla variabile pro del valore dato dalla somma fra le variabili pro e a;
- decremento del valore della variabile b di un'unità;
- fine ciclo repeat : ripeti finchè b = 0
- stampa sullo schermo della stinga prodotto = seguita dal valore della variabile pro
- lettura dell'output da parte dell'utente;
- fine del programma;