- prof. V. Riboldi - TURBOPASCAL L’iterazione Quando si risolve un problema può accadere che un...
-
Upload
rino-mattei -
Category
Documents
-
view
212 -
download
0
Transcript of - prof. V. Riboldi - TURBOPASCAL L’iterazione Quando si risolve un problema può accadere che un...
- prof. V. Riboldi -- prof. V. Riboldi -
TURBOPASCALTURBOPASCAL
L’iterazioneL’iterazione
- prof. V. Riboldi -- prof. V. Riboldi -
Quando si risolve un problema può Quando si risolve un problema può
accadere che un gruppo di accadere che un gruppo di
istruzioni debba essere ripetuto istruzioni debba essere ripetuto
fino a quando non si verifichi una fino a quando non si verifichi una
determinata condizionedeterminata condizione
- prof. V. Riboldi -- prof. V. Riboldi -
L’iterazione enumerativaL’iterazione enumerativa
In In LPLPperper variabilevariabile:=:= val_in val_in
fino afino a val_fin val_fin faifaiinizioinizio
istruzione 1istruzione 1;;istruzione 2istruzione 2;;………………..
fine;fine;
In In TPTPforfor variabilevariabile:=:= val_in val_in
toto val_fin val_fin dodobeginbegin
istruzione 1istruzione 1;;istruzione 2istruzione 2;;………………..
end;end;
Consente la ripetizione di un gruppo di istruzioni Consente la ripetizione di un gruppo di istruzioni un numero prefissato di volteun numero prefissato di volte
- prof. V. Riboldi -- prof. V. Riboldi -
L’iterazione enumerativaL’iterazione enumerativa La La variabilevariabile viene detta viene detta contatorecontatore proprio proprio
per la funzione che ha di contare il numero per la funzione che ha di contare il numero di ripetizionidi ripetizioni
Il contatore deve essere di tipo Il contatore deve essere di tipo integerinteger Il contatore viene automaticamente Il contatore viene automaticamente
incrementato di una unità ad ogni incrementato di una unità ad ogni ripetizioneripetizione
Quando il contatore assume valore uguale Quando il contatore assume valore uguale al valore finale il ciclo viene eseguito per al valore finale il ciclo viene eseguito per l’ultima volta e poi il controllo l’ultima volta e poi il controllo dell’esecuzione passa all’istruzione dell’esecuzione passa all’istruzione successivasuccessiva
- prof. V. Riboldi -- prof. V. Riboldi -
Esempio di istruzione Esempio di istruzione forfor L’operazione L’operazione i:=1i:=1 è è
detta detta inizializzazioneinizializzazione della variabiledella variabile
Si noti come nel Si noti come nel diagramma siano diagramma siano evidenziati in blocchi evidenziati in blocchi separati l’inizializzazione separati l’inizializzazione a 1 della variabile a 1 della variabile ii, il , il controllo che il suo controllo che il suo valore non superi 3 e il valore non superi 3 e il suo ciclico incremento di suo ciclico incremento di 1: in 1: in TPTP il comando il comando forfor gestisce direttamente gestisce direttamente tutte queste operazioni.tutte queste operazioni.
somma:=0
somma:=somma+7
i:=1
i:= i+1
i<=3vero
falso
- prof. V. Riboldi -- prof. V. Riboldi -
… … a ritrosoa ritroso
In In TP TP l’iterazione enumerativa può anche l’iterazione enumerativa può anche procedere dal valore più alto del contatore a procedere dal valore più alto del contatore a quello più bassoquello più basso
forfor variabile variabile:=:= val_fin val_fin downtodownto val_in val_in dodobeginbegin
istruzione 1istruzione 1;;istruzione 2istruzione 2;;………………..
end;end;
- prof. V. Riboldi -- prof. V. Riboldi -
L’iterazione per falsoL’iterazione per falso(o controllo in coda)(o controllo in coda)
In In LPLP
ripetiripeti
istruzione 1istruzione 1;;
istruzione 2istruzione 2;;
………………..
finché finché proposizioneproposizione;;
In In TPTP
repeatrepeat
istruzione 1istruzione 1;;
istruzione 2istruzione 2;;
………………..
until until proposizioneproposizione;;
Il blocco di istruzioni viene eseguito ripetutamente fino a quando la Il blocco di istruzioni viene eseguito ripetutamente fino a quando la proposizione da falsa diventa vera; certamente viene eseguito almeno una proposizione da falsa diventa vera; certamente viene eseguito almeno una
volta, in quanto la verifica del blocco di controllo segue il blocco stessovolta, in quanto la verifica del blocco di controllo segue il blocco stesso
- prof. V. Riboldi -- prof. V. Riboldi -
L’iterazione per veroL’iterazione per vero(o controllo in testa)(o controllo in testa)
In In LPLP
mentrementre proposizione proposizione faifai
inizioinizio
istruzione 1istruzione 1;;
istruzione 2istruzione 2;;
………………..
fine;fine;
In In TPTP
whilewhile proposizione proposizione dodo
beginbegin
istruzione 1istruzione 1;;
istruzione 2istruzione 2;;
………………..
end;end;
Il blocco viene eseguito ripetutamente mentre la proposizione è vera e Il blocco viene eseguito ripetutamente mentre la proposizione è vera e quando diventa falsa si esce dal ciclo; il blocco non viene mai eseguito se quando diventa falsa si esce dal ciclo; il blocco non viene mai eseguito se
la condizione è sempre falsa la condizione è sempre falsa
- prof. V. Riboldi -- prof. V. Riboldi -
Diagrammi a blocchiDiagrammi a blocchi
proposizione
vero
falso
ITERAZIONE PER FALSO
istruzione 2
istruzione 1 proposizione
vero
falso
ITERAZIONE PER VERO
istruzione 2
istruzione 1
- prof. V. Riboldi -- prof. V. Riboldi -
Nelle strutture Nelle strutture repeat … untilrepeat … until e e while … dowhile … do sono sempre presenti:sono sempre presenti:
almeno una variabile di controllo, almeno una variabile di controllo, inizializzata prima del cicloinizializzata prima del ciclo
una o più istruzioni che devono essere una o più istruzioni che devono essere eseguite una o più volte; tra di esse c'è eseguite una o più volte; tra di esse c'è sempre una istruzione che modifica la sempre una istruzione che modifica la variabile di controllo della iterazionevariabile di controllo della iterazione
la condizione di uscita dal ciclo (vera per la la condizione di uscita dal ciclo (vera per la strutturastruttura repeat repeat e falsa per la struttura e falsa per la struttura whilewhile) )