25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1.5 Istruzioni di assegnazione ed espressioni 37<br />

STOP<br />

END PROGRAM globo<br />

Si osservi che alcune funzioni intrinseche permettono di eseguire operazioni di conversione<br />

di tipo e possono essere usate per modificare il tipo del risultato dell’espressione che costituisce<br />

il loro argomento. Così, ad esempio, la funzione intrinseca REAL permette di convertire in reale<br />

un valore di tipo intero o di estrarre la parte reale di un valore complesso. <strong>Il</strong> suo utilizzo può<br />

essere esemplificato dalle seguenti espressioni:<br />

Espressione Significato<br />

REAL(2+1)/2 1.5<br />

REAL(1/2)*a 0.<br />

REAL((3.1,-4.0)) 3.1<br />

Allo stesso modo, la funzione intrinseca INT converte un valore reale o complesso nell’intero<br />

corrispondente. Ciò avviene troncando la parte decimale dell’argomento reale o della parte<br />

reale dell’argomento complesso.<br />

Espressione Significato<br />

INT(2.+1.5)/2 1<br />

INT(3.9) 3<br />

INT((3.,-4.)) 3<br />

In maniera del tutto analoga a quanto visto per le funzioni intrinsecheREAL eINT, la funzione<br />

intrinseca CMPLX(X,Y) combina gli argomenti X e Y a formare un dato di tipo complesso. Gli<br />

argomenti X e Y possono essere interi, reali o complessi, ed inoltre possono essere sia dati scalari<br />

che array. L’argomento Y è opzionale: se esso viene omesso si assume che abbia valore nullo.<br />

Nel caso particolare in cui X è un valore di tipo COMPLEX, soltanto le componenti di X verranno<br />

impiegate a formare il valore complesso finale.<br />

Una nota sugli operatori aritmetici<br />

Non tutte le operazioni aritmetiche avvengono sfruttando le stesse risorse di macchina o si caratterizzano<br />

per lo stesso tempo di esecuzione. Ad esempio, le operazioni aritmetiche fra interi<br />

sono molto più veloci delle corrispondenti operazioni su reali ed enormemente più veloci delle<br />

corrispondenti operazioni su complessi. Ma anche fra gli operatori applicabili allo stesso tipo di<br />

dati ne esistono alcuni più efficienti ed altri più lenti ed impegnativi. L’operazione di ottimizzazione<br />

detta di strength reduction ha lo scopo di sostituire una espressione con una equivalente<br />

ma che faccia uso di operatori meno ”costosi”. Del tutto in generale si può dire che l’operazione<br />

di somma fra interi è certamente più efficiente dell’operazione di moltiplicazione così come la<br />

somma di due reali è più veloce del prodotto misto fra un intero ed un reale. L’operazione di<br />

moltiplicazione, poi, è sempre più efficiente di una operazione di divisione ed enormemente più<br />

rapida di un elevamento a potenza intera o reale. Di seguito si riportano a titolo di esempio,<br />

alcune semplici istruzioni aritmetiche e la loro versione più efficiente (con i e c si sono indicati<br />

due generici valori interi, con x un valore reale):

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

Saved successfully!

Ooh no, something went wrong!