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.

1.4 Inizializzazione delle variabili 27<br />

1.4 Inizializzazione delle variabili<br />

Fintanto che ad una variabile dichiarata non venga assegnato un valore, tale variabile è detta<br />

non inizializzata; il valore di una tale variabile non è definito dallo standard del linguaggio.<br />

Alcuni compilatori impostano automaticamente a zero il valore delle variabili non inizializzate,<br />

altri lasciano in memoria i valori che preesistevano nelle locazioni di memoria attualmente<br />

occupati dalle variabili, altri ancora generano addirittura un errore al tempo di esecuzione<br />

quando una variabile venga utilizzata senza essere inizializzata.<br />

Dal momento che macchine differenti possono gestire le variabili non inizializzate in maniera<br />

differente, un programma che funzioni su una macchina potrebbe non funzionare su un’altra<br />

macchina (a parte l’evenienza che su una stessa macchina potrebbe funzionare più o meno<br />

correttamente a seconda dei dati che i precedenti programmi hanno lasciato nelle locazioni di<br />

memoria delle variabili). Per evitare i rischi connessi a tali evenienze, è sempre consigliabile<br />

inizializzare tutte le variabili utilizzate in un programma.<br />

Per inizializzare le variabili è possibile adottare una delle seguenti tecniche:<br />

• Inizializzazione mediante un’istruzione di assegnazione.<br />

• Inizializzazione mediante un’istruzione di lettura.<br />

• Inizializzazione mediante l’istruzione di dichiarazione di tipo.<br />

<strong>Il</strong> seguente programma esemplifica le prime due tecniche:<br />

PROGRAM iniz_1<br />

INTEGER :: i, j<br />

i = 1 ! inizializzazione tramite assegnazione<br />

READ*, j ! inizializzazione tramite istruzione di lettura<br />

PRINT*, i,j<br />

END PROGRAM<br />

La terza tecnica di inizializzazione consiste nello specificare i valori iniziali nell’istruzione di<br />

dichiarazione di tipo, e pertanto specifica il valore della variabile già in fase di compilazione<br />

contrariamente all’inizializzazione con un’istruzione di assegnazione che, invece, ha effetto<br />

soltanto in fase di esecuzione.<br />

La forma generale di un’istruzione di dichiarazione di tipo che inizializzi una variabile è:<br />

tipo :: variabile = valore [, variabile_2 = valore_2, ...]<br />

A titolo di esempio, si può considerare il seguente frammento di programma:<br />

PROGRAM iniz_2<br />

INTEGER :: i=1, j=2<br />

REAL :: x=10<br />

CHARACTER(LEN=6) :: str="finito"<br />

LOGICAL :: conv=.FALSE.<br />

...<br />

END PROGRAM

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

Saved successfully!

Ooh no, something went wrong!