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.

4.7 Istruzioni di I/O guidate da lista 203<br />

4.6.5 Formato con ampiezza di campo minima<br />

Al fine di minimizzare il numero di spazi bianchi nei record di uscita, il <strong>Fortran</strong> <strong>95</strong> consente<br />

di specificare un formato con una ampiezza del campo nulla. Questa particolarità si applica<br />

esclusivamente ai descrittoriI,F,O,B,Z. Dunque, è possibile avere una specificazione di formato<br />

del tipo:<br />

(I0,F0.3)<br />

Questo, si badi, non significa imporre una ampiezza nulla per il campo destinato a contenere<br />

il valore intero o reale, bensì serve ad imporre che il campo abbia una ampiezza ”minima” atta<br />

a contenere il valore in questione. L’uso di questa facility permette, così, al programmatore<br />

di non preoccuparsi eccessivamente della ”topologia” del record che, altrimenti, gli imporrebbe<br />

spesso di lavorare con campi di dimensioni eccessive per non correre il rischio, in particolari<br />

situazioni, di vederlo riempito di asterischi.<br />

4.7 Istruzioni di I/O guidate da lista<br />

Le istruzioni di I/O guidate da lista costituiscono una forma semplificata delle istruzioni di<br />

lettura e scrittura formattate. Esse consentono di adottare un formato ”libero” per i dati di<br />

ingresso ed un formato ”standard” predefinito per i dati di uscita. Così, ad esempio, l’utente<br />

può scegliere di introdurre i dati di input in una colonna qualsiasi e l’istruzione READ sarà<br />

interpretata sempre in maniera corretta. Tali modalità sono utili per un molti casi semplici di<br />

interesse pratico e pertanto, anche in relazione alle notevoli semplificazioni così introdotte, le<br />

istruzioni in esame vengono largamente utilizzate.<br />

Le operazioni di I/O guidate da lista sono definite unicamente sulle unità standard precollegate<br />

ed hanno la seguente forma semplificata:<br />

READ(*,*) lista_di_ingresso<br />

WRITE(*,*) lista_di_uscita<br />

PRINT*, lista_di_uscita<br />

Una istruzione READ produce la lettura di una o più linee fino a produrre l’ingresso di tanti valori<br />

quante sono le variabili della lista_di_ingresso . Un’istruzione WRITE (o PRINT) produce<br />

l’uscita di tanti valori quanti sono elencati nella lista_di_uscita , ciascuno con un formato<br />

standard predefinito dallo specifico compilatore e dipendente dal tipo di valore da rappresentare.<br />

Si noti che ciascuna operazione di I/O produce la lettura o la scrittura di un nuovo record<br />

indipendentemente dal fatto che nell’operazione precedente l’ultimo record sia stato o meno<br />

scandito interamente. In altri termini, non è possibile leggere o scrivere parti successive di uno<br />

stesso record con operazioni di I/O distinte. In particolare, se la lista di input è vuota viene<br />

saltato il record successivo, se la lista di output è vuota viene prodotta una riga bianca.<br />

4.7.1 Istruzione di input guidate da lista<br />

La lista di ingresso può essere registrata su una o più linee, utilizzando quale carattere di<br />

separazione la virgola oppure uno o più spazi bianchi, secondo il seguente formalismo:

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

Saved successfully!

Ooh no, something went wrong!