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.

4.4 Descrittori ripetibili 187<br />

il cui risultato è, evidentemente, il seguente:<br />

****** 0.123 123.456<br />

-12.30 0.12 123.46<br />

-12.30 0.123 123.<br />

<strong>Il</strong> primo campo, riempito di asterischi, si spiega considerando che il valore da rappresentare,<br />

-12.3 richiede tre caratteri per la rappresentazione della parte intera (-12) mentre il particolare<br />

specificatore adottato dalla prima istruzione FORMAT ne riserva appena due (dei 6 associati allo<br />

specificatore F6.3, infatti, ne vanno sottratti 3 per la parte decimale ed uno per il punto<br />

decimale). L’ultimo valore prodotto, invece, si caratterizza per la totale assenza di una parte<br />

decimale, in accordo con lo specificatore F5.0 che, per la stampa del valore cui è riferito, riserva<br />

un campo di 5 caratteri di cui 0 per la parte decimale.<br />

L’interpretazione dei dati reali in istruzioni di ingresso è lievemente più complessa. <strong>Il</strong> valore<br />

di input in un un campo F può essere un numero reale qualsiasi espresso secondo la notazione<br />

in virgola fissa o mobile o un numero senza punto decimale. In particolare, se il valore è<br />

inserito nelle prime due forme, esso è interpretato sempre correttamente indipendentemente<br />

dalla posizione che occupa all’interno del campo di input. Così, ad esempio, considerata la<br />

seguente istruzione di input:<br />

REAL :: x, y, z ... READ(*,150) x,y,z 150 FORMAT(3F10.4)<br />

supponendo che il record di ingresso sia il seguente:<br />

2.5 0.254E+01 25.E-01 <br />

tutte e tre le variabili di ingresso conterranno il valore 2.5 (ai piedi del precedente record<br />

di ingresso si sono indicate schematicamente anche le dimensioni di ciascun campo, al fine di<br />

rendere più evidente la formattazione del record). Se, invece, all’interno del campo appare<br />

un numero senza un punto decimale, si suppone che questo occupi la posizione specificata<br />

dal termine d del descrittore di formato. Ad esempio, se il descrittore di formato è F10.4, si<br />

suppone che le quattro cifre più a destra del numero costituiscano la parte decimale del valore<br />

di input mentre le restanti cifre sono considerate come la parte intera del valore di input. Così,<br />

ad esempio, considerata la seguente istruzione di input:<br />

REAL :: x, y, z ... READ(*,150) x,y,z 150 FORMAT(3F10.4)<br />

supponendo che il record di ingresso sia il seguente:<br />

25 250 25000<br />

<br />

le variabili x, y e z conterrebbero, rispettivamente, i valori 0.0025, 0.0250 e 2.5000 Questo<br />

semplice esempio dovrebbe essere sufficiente a far comprendere come l’impiego, nei record di<br />

ingresso, di valori reali senza il punto decimale possa generare una notevole confusione per cui<br />

non dovrebbe mai aver luogo.

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

Saved successfully!

Ooh no, something went wrong!