1 . Dal problema all ’ algoritmo versione 6.2 – Settembre 2024
N . B . E ’ possibile provare che tale tipo di costrutto iterativo equivale ad uno iterativo con controllo in testa e che quest ’ ultimo equivale ad un costrutto di selezione + costrutto iterativo con controllo in coda
Esempio esplicativo
PER i � 1 A 5 ESEGUI |
equivale |
i � 1 |
equivale |
i � 1 |
< B1 > i � i + 1 |
|
MENTRE ( i ≤ 5 ) ESEGUI |
|
SE ( i ≤ 5 ) |
FINE PER |
|
< B1 > |
|
ALLORA |
Costrutto di iterazione determinato o indicizzato
i � i + 1 |
RIPETI |
FINE MENTRE |
< B1 > |
Costrutto di iterazione con controllo in testa o per vero i � i + 1
FINCHE ’ NOT ( i ≤ 5 ) FINE SE
Costrutto di iterazione con controllo in coda o per falso
N . B . Ricordiamo che NON TUTTE le iterative di tipo MENTRE o RIPETI possono essere rappresentate in modo equivalente utilizzando una istruzione di tipo PER .
Esempio :
MENTRE (< condizione >) ESEGUI
< B1 > FINE MENTRE
oppure
RIPETI < B1 >
FINCHE ’ (< condizione >)
In questo caso il numero di iterazioni ( cicli ) dipenderà dal cambiamento di valore di verità ( da VERO a FALSO ) della condizione logica < condizione >.
Anche in questo caso il numero di iterazioni ( cicli ) dipenderà dal cambiamento di valore di verità ( da FALSO a VERO ) della condizione logica < condizione >.
IN DEFINITIVA non è MAI possibile scrivere un ’ istruzione PER equivalente utilizzando una delle altre due iterative quando non è noto a priori il numero di cicli
ma ……….
MENTRE (< condizione >) ESEGUI < B1 >
FINE MENTRE equivale
SE (< condizione >) ALLORA
RIPETI < B1 >
FINCHE ’ ( NOT < condizione >) FINE SE
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 21