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.5 Istruzioni di assegnazione ed espressioni 29<br />

Una cosa importante da tenere a mente è che un qualsiasi nome dichiarato con l’attributo<br />

PARAMETER (ossia, una qualunque costante con nome) è semplicemente un alias di un valore<br />

ben preciso, e non una variabile, pertanto esso non può in alcun modo essere usato a sinistra<br />

di un’istruzione di assegnazione. Nel seguente frammento di programma, pertanto, l’istruzione<br />

di assegnazione provoca un messaggio di errore in fase di compilazione:<br />

INTEGER, PARAMETER :: x1=2.54, x2=123.45<br />

x1=3.0*x2 ! Errore: x1 è una costante con nome<br />

Qualora occorra assegnare ad una variabile un valore risultante dal calcolo di una espressione<br />

di tipo diverso, è necessario ricorrere esplicitamente alla conversione di tipo, secondo lo schema:<br />

oppure:<br />

variabile = CONV(espressione)<br />

variabile_di_appoggio = espressione<br />

variabile = CONV(variabile_di_appoggio)<br />

in cui variabile_di_appoggio deve avere lo stesso tipo di espressione e CONV è un nome<br />

fittizio per indicare una funzione di conversione verso il tipo di variabile.<br />

Nel seguito si tratteranno separatamente le specificità delle regole di assegnazione e delle<br />

operazioni di cui si compongono le espressioni nei diversi tipi. Prima di proseguire, però, è utile<br />

premettere alcune definizioni.<br />

Si chiama espressione costante una qualunque espressione in cui ciascuna operazione è di<br />

tipo intrinseco e ciascun operando fa parte del seguente gruppo (si noti che alcuni dei punti<br />

seguenti saranno chiari soltanto proseguendo nella lettura di queste note):<br />

• Una costante<br />

• Un costruttore di array i cui elementi siano essi stessi espressioni costanti<br />

• Un costruttore di struttura i cui componenti siano essi stessi espressioni costanti<br />

• Una chiamata di funzione intrinseca di elemento, i cui argomenti siano espressioni costanti<br />

• Una chiamata di funzione intrinseca di trasformazione, i cui argomenti siano espressioni<br />

costanti<br />

• Una chiamata di fuznione di interrogazione (che non siaPRESENT,ASSOCIATED oALLOCATED)<br />

i cui argomenti siano espressioni costanti o variabili le cui carattersitiche interrogate non<br />

siano, però, presunte, definite da un’espressione non costante, definite da un’istruzione<br />

ALLOCATE o definite da un’assegnazione di puntatore.<br />

• Una variabile di ciclo implicito i cui limiti ed il cui passo siano espressioni costanti<br />

• Una espressione costante racchiusa in parentesi

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

Saved successfully!

Ooh no, something went wrong!