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.

5.17 Overloading 289<br />

addizione_intervalli%lower = a%lower + b%lower<br />

addizione_intervalli%upper = a%upper + b%upper<br />

END FUNCTION addizione_intervalli<br />

FUNCTION sottrazione_intervalli(a,b)<br />

TYPE(intervallo), INTENT(IN) :: a, b<br />

TYPE (intervallo) :: sottrazione_intervalli<br />

sottrazione_intervalli%lower = a%lower - b%upper<br />

sottrazione_intervalli%upper = a%upper - b%lower<br />

END FUNCTION sottrazione_intervalli<br />

FUNCTION moltiplicazione_intervalli(a,b)<br />

TYPE(intervallo), INTENT(IN) :: a, b<br />

TYPE (intervallo) :: moltiplicazione_intervalli<br />

moltiplicazione_intervalli%lower = a%lower * b%lower<br />

moltiplicazione_intervalli%upper = a%upper * b%upper<br />

END FUNCTION moltiplicazione_intervalli<br />

FUNCTION divisione_intervalli(a,b)<br />

TYPE(intervallo), INTENT(IN) :: a, b<br />

TYPE(intervallo) :: divisione_intervalli<br />

divisione_intervalli%lower = a%lower / b%upper<br />

divisione_intervalli%upper = a%upper / b%lower<br />

END FUNCTION divisione_intervalli<br />

END MODULE aritmetica_intervalli<br />

<strong>Il</strong> seguente programma fornisce un esempio di applicazione del moduloaritmetica_intervalli.<br />

PROGRAM abc<br />

USE aritmetica_intervalli<br />

IMPLICIT NONE<br />

TYPE (intervallo) :: a, b, c, d, e, f<br />

a%lower = 6.9<br />

a%upper = 7.1<br />

b%lower = 10.9<br />

b%upper = 11.1<br />

WRITE (*,*) a,b<br />

c = a+b<br />

d = a-b<br />

e = a*b<br />

f = a/b<br />

WRITE(*,*) c,d<br />

WRITE(*,*) e,f<br />

END<br />

Chiaramente l’output di questo programma di test è il seguente:<br />

6.<strong>90</strong>00001 7.0999999 10.8999996 11.1000004

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

Saved successfully!

Ooh no, something went wrong!