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.

48 Tipi ed espressioni<br />

L’istruzione PRINT si comporta analogamente a WRITE salvo per il fatto che il dispositivo di<br />

uscita è sempre quello standard del sistema di calcolo utilizzato.<br />

E’ possibile semplificare ulteriormente queste istruzioni sostituendo un asterisco (”*”) agli<br />

argomenti unità_logica e formato , riferendosi in tal modo ai dispositivi standard di ingresso/uscita<br />

e formattando i dati con impostazioni di default previsti dalla specifica implementazione:<br />

READ(*,*) lista_di_variabili<br />

WRITE(*,*) lista_di_espressioni<br />

PRINT* lista_di_espressioni<br />

In generale, però, il parametro formato avrà come valore una etichetta cui è riferita una<br />

istruzione FORMAT la quale rappresenta una particolare istruzione non eseguibile avente lo scopo<br />

di descrivere la specificazione di formato da utilizzare. Di tutto questo, però si parlerà<br />

diffusamente nel seguito.<br />

Come esempio si consideri il seguente frammento di programma:<br />

INTEGER :: m, n<br />

...<br />

READ(*,*) m, n<br />

WRITE(*,*) "<strong>Il</strong> risultato e’: ", m + 2*n<br />

La prima istruzione eseguibile legge due valori dal dispositivo standard di input (ad esempio,<br />

la tastiera) e ne assegna i valori ordinatamente alle variabili elencate nella lista di ingresso. Si<br />

noti che i valori introdotti devono essere separati da virgole o da spazi bianchi. La seconda<br />

istruzione, invece, valuta le espressioni della lista di uscita e ne produce i valori ordinatamente<br />

sul dispositivo standard di output (ad esempio, il terminale video). Così, se il record di ingresso<br />

fosse il seguente:<br />

3 4<br />

il risultato a video sarebbe:<br />

<strong>Il</strong> risultato e’: 11<br />

Come si nota, il record di uscita è formattato piuttosto male, con un numero eccessivo di caratteri<br />

bianchi fra il primo elemento della lista di uscita (la stringa <strong>Il</strong> risultato e’: ) ed<br />

il secondo (il valore dell’espressione intera m+2*n). Una migliore formattazione si otterrebbe ricorrendo<br />

ad una esplicita specificazione di formato, ad esempio, mediante un’istruzione FORMAT,<br />

come suggerito dal seguente esempio:<br />

WRITE(*,100) "<strong>Il</strong> risultato e’: ", m+2*n<br />

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

che serve a strutturare il record di uscita in modo tale che il primo carattere sia uno spazio<br />

bianco (1X), seguito da una stringa di diciassette caratteri (A17) seguita, a sua volta, da un<br />

intero di due cifre (I2). <strong>Il</strong> risultato a video apparirebbe, allora, in questo modo:

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

Saved successfully!

Ooh no, something went wrong!