25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.3 Istruzioni di ripetizione 101<br />

• indice è una variabile intera usata come contatore;<br />

• inizio è una variabile (o una espressione) intera indicante il valore iniziale di indice ;<br />

• fine è una variabile (o una espressione) intera indicante il valore finale di indice .<br />

• passo è una variabile (o una espressione) intera indicante lo step di cui la variabileindice<br />

viene incrementata. Questo step è opzionale ed ha valore di default unitario.<br />

All’avvio del ciclo, la variabile contatore indice assume il valore inizio , alla seconda iterazione<br />

(dopo, cioè, una prima esecuzione delle istruzioni del blocco ) indice ha valore pari<br />

a inizio +passo (ovvero inizio +1 se passo è omesso), e così via fino all’ultima iterazione<br />

quando assumerà il valore fine (oppure il massimo valore intero minore di fine ma tale che<br />

se incrementato di passo risulterebbe maggiore di fine ).<br />

<strong>Il</strong> numero di volte che le istruzioni vengono eseguite può essere facilmente calcolato come:<br />

MAX((fine +passo −inizio )/passo , 0)<br />

Pertanto, se il valore di fine è minore del valore di inizio e passo risulta positivo, allora<br />

indice assumerà valore zero ed il ciclo non avrà luogo.<br />

Esempi di applicazione del ciclo a conteggio sono offerte dai seguenti frammenti di codice:<br />

tutti: DO i = 1, 10<br />

WRITE(*,*) i ! stampa i numeri da 1 a 10<br />

END DO tutti<br />

pari: DO j = 10,2,-2<br />

WRITE(*,*) j ! stampa i numeri pari 10,8,6,4,2<br />

END DO pari<br />

<strong>Il</strong> programmino che segue, invece, stampa la tabellina del 5:<br />

PROGRAM tabellina<br />

IMPLICIT NONE<br />

INTEGER :: i, j=5<br />

PRINT 100, "Tabellina del", j<br />

DO i=1,10<br />

PRINT 200, j,"per",i,"=",i*j<br />

END DO<br />

100 FORMAT(1X,A13,1X,I2)<br />

200 FORMAT(1X,I2,1X,A3,1X,I2,1X,A1,1X,I2)<br />

END PROGRAM tabellina<br />

ed infatti il suo output è:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!