TURBOPASCAL L’iterazione - prof. V. Riboldi -
Quando si risolve un problema può accadere che un gruppo di istruzioni debba essere ripetuto fino a quando non si verifichi una determinata condizione - prof. V. Riboldi -
L’iterazione enumerativa Consente la ripetizione di un gruppo di istruzioni un numero prefissato di volte In TP for variabile:= val_in to val_fin do begin istruzione 1; istruzione 2; ………. end; In LP per variabile:= val_in fino a val_fin fai inizio istruzione 1; istruzione 2; ………. fine; - prof. V. Riboldi -
L’iterazione enumerativa La variabile viene detta contatore proprio per la funzione che ha di contare il numero di ripetizioni Il contatore deve essere di tipo integer Il contatore viene automaticamente incrementato di una unità ad ogni ripetizione Quando il contatore assume valore uguale al valore finale il ciclo viene eseguito per l’ultima volta e poi il controllo dell’esecuzione passa all’istruzione successiva - prof. V. Riboldi -
Esempio di istruzione for L’operazione i:=1 è detta inizializzazione della variabile Si noti come nel diagramma siano evidenziati in blocchi separati l’inizializzazione a 1 della variabile i, il controllo che il suo valore non superi 3 e il suo ciclico incremento di 1: in TP il comando for gestisce direttamente tutte queste operazioni. - prof. V. Riboldi -
… a ritroso In TP l’iterazione enumerativa può anche procedere dal valore più alto del contatore a quello più basso for variabile:= val_fin downto val_in do begin istruzione 1; istruzione 2; ………. end; - prof. V. Riboldi -
L’iterazione per falso (o controllo in coda) Il blocco di istruzioni viene eseguito ripetutamente fino a quando la proposizione da falsa diventa vera; certamente viene eseguito almeno una volta, in quanto la verifica del blocco di controllo segue il blocco stesso In LP ripeti istruzione 1; istruzione 2; ………. finché proposizione; In TP repeat istruzione 1; istruzione 2; ………. until proposizione; - prof. V. Riboldi -
L’iterazione per vero (o controllo in testa) Il blocco viene eseguito ripetutamente mentre la proposizione è vera e quando diventa falsa si esce dal ciclo; il blocco non viene mai eseguito se la condizione è sempre falsa In LP mentre proposizione fai inizio istruzione 1; istruzione 2; ………. fine; In TP while proposizione do begin istruzione 1; istruzione 2; ………. end; - prof. V. Riboldi -
Diagrammi a blocchi - prof. V. Riboldi -
Nelle strutture repeat … until e while … do sono sempre presenti: almeno una variabile di controllo, inizializzata prima del ciclo una o più istruzioni che devono essere eseguite una o più volte; tra di esse c'è sempre una istruzione che modifica la variabile di controllo della iterazione la condizione di uscita dal ciclo (vera per la struttura repeat e falsa per la struttura while) - prof. V. Riboldi -