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.

30 Tipi ed espressioni<br />

Dal momento che il valore di una costante con nome deve essere valutato al tempo di<br />

compilazione, le espressioni consentite per la sua definizione sono, in qualche modo, limitate.<br />

Una espressione di inizializzazione è, infatti, una espressione costante in cui:<br />

• L’operatore di elevamento a potenza deve avere un esponente intero<br />

• Una funzione intrinseca di elemento deve avere argomenti e risultato di tipo INTEGER o<br />

CHARACTER<br />

• Delle funzioni di trasformazione, soltanto le procedure REPEAT, RESHAPE, TRANSFER, TRIM,<br />

SELECTED_INT_KIND, SELECTED_REAL_KIND sono consentite<br />

Nella definizione di una costante con nome è possibile utilizzare una espressione di inizializzazione<br />

e la costante diventa definita con il valore dell’espressione secondo le regole dell’assegnazione<br />

intrinseca. Quanto detto è illustrato dall’esempio che segue:<br />

! costante con nome di tipo INTEGER<br />

INTEGER, PARAMETER :: length=10, long=SELECTED_REAL_KIND(12)<br />

! costante con nome di tipo REAL<br />

REAL, PARAMETER :: lsq=length**2<br />

! costante con nome di tipo array<br />

REAL, DIMENSION(3), PARAMETER :: array=(/1.0, 2.0, 3.0/)<br />

! costante con nome di tipo di dati defnito dall’utente<br />

TYPE(miotipo), PARAMETER :: a=miotipo(1.0,5,"casa")<br />

1.5.1 Espressioni aritmetiche<br />

Tutti i calcoli effettuati da un programma <strong>Fortran</strong> vengono specificati attraverso istruzioni di<br />

assegnazione il cui formato generale è il seguente:<br />

variabile = espressione_aritmetica<br />

L’esecuzione di una istruzione di questo tipo avviene calcolando prima il valore di espressione<br />

aritmetica e poi memorizzando poi tale valore nella cella identificata dal nome variabile .<br />

Si noti, tuttavia, che se il tipo dell’espressione non coincide con quello della variabile a<br />

primo membro, allora il valore dell’espressione viene convertito al modo seguente:<br />

• Se il tipo di variabile è INTEGER mentre il tipo di espressione è REAL allora la parte<br />

decimale, incluso il punto, viene rimosso dando luogo ad un risultato intero.<br />

• Se il tipo di variabile è REAL mentre il tipo di espressione è INTEGER allora al valore<br />

(intero) del risultato viene aggiunto il punto decimale dando così luogo ad un valore reale.<br />

A titolo di esempio si guardi il seguente frammento di programma:

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

Saved successfully!

Ooh no, something went wrong!