next up previous

Cicli


Nel linguaggio Fortran 90 un ciclo che esegue un blocco di istruzioni un numero determinato di volte è detto 
ciclo iterativo.I cicli DO possono avere una delle due forme:


                       [nome:] DO indice=inizio,fine,incremento
                                  
                                   istruzione1
                                   istruzione2
                                   .........
                                   istruzionen

                               END DO nome
                    

oppure:



                       [nome:] DO indice=inizio,fine
                                  
                                   istruzione1
                                   istruzione2
                                   .........
                                   istruzionen

                               END DO nome
                    

Nel secondo caso l'incremento sarà unitario.Anche in questo caso l'etichetta nome è facoltativa.
Nelle strutture di programma precedenti la variabile indice è una variabile intera utilizzata come contatore del ciclo 
iterativo, mentre le quantità intere inizio,fine e incremento sono i parametri del ciclo; 
hanno il compito di controllare i valori della variabile indice durante l'esecuzione del ciclo. 
Il parametro incremento è facoltativo; se è omesso, viene impostato a l.
Le istruzioni comprese fra DO e END DO formano il corpo del ciclo iterativo; vengono eseguite ad ogni ripetizione del ciclo. 
Il meccanismo di funzionamento di un ciclo iterativo viene spiegato per passi nel prospetto seguente: 

I) Ciascuno dei tre parametri inizio, fine e incremento può essere una costante, una variabile o un'espressione. 
   Se si tratta di variabili o espressioni, i loro valori vengono preventivamente calcolati prima dell'inizio del ciclo.

2) All'inizio dell'esecuzione del ciclo DO, il programma assegna il valore inizio alla variabile di controllo indice. 
   Se indice * incremento <=  fine * incremento, il programma esegue le istruzioni all'interno del corpo del ciclo.

3) Dopo che le istruzioni del corpo del ciclo sono state eseguite, la variabile di controllo viene aggiornata nel 
   modo seguente:

        indice = indice + incremento

   Se indice * incremento risulta ancora inferiore a fine * incremento, il programma ripete le istruzioni contenute
   nel corpo del ciclo.

4) Il passaggio 2 viene ripetuto fino a quando indice * incremento <= fine * incremento. 
   Nel momento in cui questa condizione non risulta più vera, il controllo passa alla prima istruzione che si trova 
   dopo la fine del ciclo (END DO).

L'esempio che segue ci permetterà di comprendere meglio il meccanismo esaminato nei passi precedenti. 
Analizzate l'esempio seguente:

DO i = 1, 100 

   istruzione 1
   ......
   ......
   istruzione n 

END DO

In questo caso, le istruzioni da 1 a n saranno eseguite l00 volte. L'indice del ciclo avrà il valore 100 durante l'ultimo 
passaggio del ciclo. Quando il controllo passa all'istruzione DO dopo il centesimo passaggio, l'indice del ciclo 
assumerà il valore 101.
Poichè 101 * 1 > 100 * 1, il controllo sarà trasferito alla prima istruzione che segue END DO.