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.

206 Operazioni di I/O interattive<br />

Si noti, infine, che se devono essere prodotte in uscita n ≥2 costanti identiche il processore può<br />

scegliere di stamparle nella forma:<br />

n*valore<br />

dove valore è il valore delle costanti identiche.<br />

4.8 Caratteri di controllo per la stampante<br />

Fino ad ora si è appreso come controllare il layout di dati da o verso i dispositivi standard di<br />

I/O. Quando, tuttavia, durante operazioni di output i dati vengono inviati ad un dispositivo<br />

che il sistema identifica come stampante, è possibile esercitare un ulteriore (limitato) controllo<br />

della spaziatura verticale del foglio stampato.<br />

Quando un record viene inviato ad un dispositivo di uscita designato come stampante, il<br />

primo carattere del record viene rimosso dalla linea ed interpretato come carattere di controllo<br />

che determina di quanto il foglio deve ”salire” prima che i restanti caratteri del record vengano<br />

stampati. Al riguardo, esistono quattro caratteri che hanno un particolare significato. Se il<br />

primo carattere del record di uscita non è uno di essi, l’effetto sulla stampante risulta indefinito<br />

anche se, in pratica, qualsiasi carattere viene interpretato come uno spazio e, pertanto, produce<br />

l’avanzamento di un rigo. Tali caratteri sono elencati di seguito:<br />

Carattere di controllo Avanzamento verticale<br />

b (spazio) una linea<br />

0 (zero) due linee<br />

1 (uno) una pagina<br />

+ (più) nessun avanzamento<br />

Dal momento che il primo carattere è rimosso e, pertanto, non riprodotto è importante<br />

inserire un carattere extra (”di controllo”) all’inizio di ogni record da stampare.<br />

Esistono molti modi per inserire un carattere di controllo in testa ad un record, soprattutto<br />

se tale carattere è uno spazio bianco. E’ preferibile, tuttavia, per motivi di leggibilità, inserire<br />

esplicitamente il suddetto carattere di controllo, come mostrano i seguenti esempi:<br />

100 FORMAT(1X,...) 200 FORMAT(’ ’,...) 300 FORMAT(T2,...)<br />

E’ importante sottolineare che quanto detto si applica esclusivamente alla unità stampante e<br />

a tutte quelle unità che il compilatore identifica come stampanti, inclusa, in alcuni casi, l’unità<br />

video. Tutte le altre unità di uscita non richiedono alcun carattere di controllo e stamperanno,<br />

pertanto, il record completo del suo carattere di testa. Si noti, infine, che nel caso l’unità stampante<br />

sia l’unità standard di uscita, l’istruzione PRINT inserisce automaticamente il carattere<br />

di controllo blank all’inizio di ogni record.<br />

Si consideri, ancora, il seguente esempio:<br />

WRITE(*,100) 100 FORMAT(’1’,"Questo e’ il titolo e viene stampato a<br />

inizio pagina") WRITE(*,200) 200 FORMAT(’0’,"Ora si e’ raddoppiata

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

Saved successfully!

Ooh no, something went wrong!