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.

188 Operazioni di I/O interattive<br />

4.4.4 <strong>Il</strong> descrittore E<br />

<strong>Il</strong> descrittore di formato E è utilizzato per controllare il formato di rappresentazione dei valori<br />

reali secondo la notazione esponenziale. <strong>Il</strong> suo formato è:<br />

Ew.d [Ee]<br />

dove w rappresenta la larghezza di campo, ossia il numero di caratteri da utilizzare per rappresentare<br />

i dati di input e output, d rappresenta il numero di cifre da visualizzare a destra<br />

del punto decimale, mentre e rappresenta il numero di cifre nell’esponente (si noti che, per<br />

default, ad e viene attribuito valore due). Si faccia attenzione al fatto che i valori reali rappresentati<br />

secondo la notazione esponenziale con il descrittore E sono ”normalizzati” ossia sono<br />

rappresentati con una mantissa compresa tra 0.1 e 1.0 moltiplicata per una potenza di 10. La<br />

dimensione dei campi dei numeri reali deve essere valutata con molta attenzione quando si fa<br />

uso del descrittore E. Infatti, nel caso in cui il suffisso Ee sia assente è necessario che w e d<br />

soddisfino alla condizione:<br />

w ≥ d + 7<br />

ossia, per stampare una variabile con d cifre significative occorre un campo di almeno d+7<br />

caratteri (infatti occorrono, oltre a d caratteri per le cifre significative della mantissa, anche un<br />

carattere per il segno della mantissa, due per lo zero e il punto decimale, uno per la lettera E,<br />

uno per il segno dell’esponente e due per l’esponente). Nel caso in cui questa condizione non sia<br />

soddisfatta, il campo destinato all’output del reale sarà riempito di asterischi. Analogamente,<br />

la forma ”completa” del descrittore, che prevede anche il gruppo Ee implica il rispetto della<br />

condizione:<br />

w ≥ d +e+5<br />

Si noti che nel caso in cui il numero da rappresentare sia positivo la larghezza minima del<br />

campo può essere diminuita di un’unità (così, ad esempio, in assenza del suffisso Ee basta che<br />

la larghezza w del campo sia di soli sei caratteri più grande di d). Si noti, infine, che alcuni<br />

compilatori eliminano lo zero iniziale per cui, in questi casi, è richiesta una colonna in meno.<br />

Come esempio, si guardino le seguenti istruzioni:<br />

REAL :: a=1.2345E6, b=0.01, c=-77.7E10, d=-77.7E10 WRITE(*,100)<br />

a,b,c,d 100 FORMAT(1X,2E14.4,E13.6,E11.6)<br />

le quali, come è logico attendersi, generano il seguente risultato:<br />

0.1235E+07 0.1000E-01-0.777000E+12***********<br />

<br />

(ai piedi del precedente record di uscita si sono indicate schematicamente anche le dimensioni<br />

di ciascun campo, al fine di rendere più evidente la formattazione del risultato).<br />

Si supponga ora di voler rappresentare in uscita il valore complesso z = 4.25 + j78.3 Dal<br />

momento che un numero complesso è costituito da una coppia di valori reali, il relativo formato<br />

viene specificato mediante due successivi descrittori di formato validi per i reali, rispettivamente<br />

per la parte reale ed il coefficiente della parte immaginaria. Pertanto le istruzioni:

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

Saved successfully!

Ooh no, something went wrong!