25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

112 Istruzioni di controllo<br />

PRINT*, n<br />

IF (n > 1000) EXIT<br />

END DO<br />

PRINT*, n<br />

la cui funzione è quella di elevare al cubo ciascun numero introdotto fino a che il cubo del valore<br />

inserito non superi il valore 1000, nel qual caso il ciclo si arresta e viene stampato il risultato.<br />

Un ulteriore esempio di ciclo a condizione finale è rappresentato dal programma che segue il<br />

cui scopo è quello di costruire una tabella di conversione della temperatura dalla scala Celsius<br />

alle scale Kelvin, Fahrenheit e Réaumur, rispettivamente. L’intervallo di temperatura prescelto<br />

varia da 0 ◦ C e 100 ◦ C essendo queste le temperature standard del ghiaccio fondente e dell’acqua<br />

bollente; la ripartizione dT dell’intervallo è, invece, scelto dall’utente in fase di esecuzione. Al<br />

fine di favorire la comprensione del codice che segue, si ricordano le formule di conversione dalla<br />

scala Celsius alle altre tre:<br />

T[K] = T[ ◦ C] + 273.15<br />

T[ ◦ F] = 9<br />

5 T[◦ C] + 32<br />

T[ ◦ R] = 0.8 × T[ ◦ C]<br />

PROGRAM temperatura<br />

! Scopo: convertire temperature da gradi Celsius a gradi Fahrenheit,<br />

! Reaumur e nella scala Kelvin<br />

IMPLICIT NONE<br />

REAL :: T_c ! temperatura in gradi Celsius<br />

REAL :: T_k ! temperatura in Kelvin<br />

REAL :: T_f ! temperatura in gradi Fahrenheit<br />

REAL :: T_r ! temperatura in gradi Reaumur<br />

REAL :: dT ! incremento nella temperatura<br />

REAL, PARAMETER :: Tmin_c=0.0 ! temperatura di congelamento dell’acqua<br />

REAL, PARAMETER :: Tmax_c=100. ! temperatura di ebollizione dell’acqua<br />

REAL, PARAMETER :: cost=1.8 ! fattore 9/5 della convers. Cels->Fahr<br />

WRITE(*,*) "Incremento nella T: "; READ(*,*) dT<br />

WRITE(*,*) " Celsius Kelvin Fahrenheit Reaumur "<br />

WRITE(*,*) " ========== ========== =========== ========== "<br />

T_c = Tmin_c<br />

DO<br />

T_f = cost*T_c + 32.<br />

T_k = 273.15 + T_c<br />

T_r = 0.8*T_c<br />

WRITE(*,*) T_c, T_k, T_f, T_r<br />

T_c = T_c+dT<br />

IF (T_c > Tmax_c) EXIT<br />

END DO<br />

END PROGRAM temperatura

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

Saved successfully!

Ooh no, something went wrong!