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.

34 Tipi ed espressioni<br />

1/2 + 1./4.<br />

fornisce il valore 0.25 (che coincide con il valore del secondo argomento della somma) in quanto<br />

la prima operazione, avvenendo fra operandi interi, restituisce un valore intero, nella fattispecie<br />

il valore 0. Se, invece, la prima operazione fosse stata di natura mista, come ad esempio:<br />

1./2 + 1./4.<br />

avrebbe avuto luogo una conversione automatica tale che il valore (reale) della prima operazione<br />

sarebbe stato 0.5 e, dunque, il valore dell’intera espressione sarebbe stato 0.75, ben diverso<br />

da quello fornito dall’espressione precedente.<br />

Sia valori interi che valori reali possono essere combinati con dati di tipo complesso a formare<br />

espressioni miste. Tali espressioni vengono valutate convertendo i dati interi e reali a formare<br />

dati complessi con parte immaginaria nulla. Così, ad esempio, se z1 è il numero complesso<br />

(x1,y1), ed r è un numero reale, l’espressione<br />

r * z1<br />

viene convertita in:<br />

(r,0)*(x1,y1)<br />

che verrà valutata come:<br />

(r*x1,r*y1)<br />

Allo stesso modo, se n è un intero, allora l’espressione:<br />

n + z1<br />

viene convertita in:<br />

(REAL(n),0)+(x1,y1)<br />

che verrà valutata come:<br />

(REAL(n)+x1,y1)<br />

Elevamento a potenza<br />

Come regola generale, le espressioni miste dovrebbero sempre essere evitate in quanto subdole e,<br />

spesso, non facili da trattare. L’unica eccezione a questa regola è rappresentata dall’elevamento<br />

a potenza caratterizzata da una base reale e da un esponente intero. In effetti questa operazione,<br />

contrariamente a quanto potrebbe sembrare, non è di tipo misto; di ciò ci si può facilmente<br />

rendere conto considerando la seguente espressione:<br />

INTEGER :: esponente<br />

REAL :: base, risultato<br />

risultato = base**esponente

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

Saved successfully!

Ooh no, something went wrong!