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 109<br />

L’effetto di questo ciclo è quello di eseguire le istruzioni del blocco fintanto che il valore di diff<br />

risulti minore di 0.001. Chiaramente se già il valore di partenza di diff risulta maggiore o<br />

uguale di 0.001 le istruzioni del ciclo non verranno mai eseguite.<br />

<strong>Il</strong> programma che segue, concepito per il calcolo del massimo comun divisore di due interi<br />

con il metodo di Euclide, rappresenta un ulteriore esempio di ciclo a condizione iniziale:<br />

! -------------------------------------------------------------<br />

! Questo programma calcola il MCD di due numeri interi positivi<br />

! usando il metodo di Euclide. Dati i1 e i2 con i1 >= i2, il<br />

! metodo di Euclide lavora come segue:<br />

! - si divide i1 per i2 valutando il resto intero tmp;<br />

! - se tmp vale zero:<br />

! il MCM e’ pari proprio a i2;<br />

! - se tmp e’ diverso da zero:<br />

! i2 diventa i1 e tmp diventa i2;<br />

! si ripete il procedimento fino a che temp non e’ zero.<br />

! -------------------------------------------------------------<br />

PROGRAM MCD<br />

IMPLICIT NONE<br />

INTEGER :: i1, i2, tmp<br />

WRITE(*,*) "Inserisci due interi positivi: "<br />

READ(*,*) i1,i2<br />

IF (i1 < i2) THEN ! poiche’ deve risultare i1 >= i2, i dati<br />

tmp = i1 ! vengono sottoposti a swap se i1 < i2<br />

i1 = i2<br />

i2 = tmp<br />

END IF<br />

tmp = MOD(i1,i2) ! tmp adesso e’ il resto intero<br />

DO ! ora certamente risulta i1

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

Saved successfully!

Ooh no, something went wrong!