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.3 Procedure Interne 225<br />

! Scopo: Calcolare l’area di un triangolo nota la lunghezza<br />

! dei suoi lati<br />

IMPLICIT NONE<br />

REAL :: a, b, c, TriangleArea<br />

DO<br />

WRITE(*,*) "Inserire le lunghezze dei lati: "<br />

READ(*,*) a, b, c<br />

WRITE(*,*) "I dati inseriti sono: ", a, b, c<br />

IF (TriangleTest(a,b,c)) THEN<br />

EXIT<br />

ELSE<br />

WRITE(*,*) "Attenzione: il triangolo e’ degenere"<br />

WRITE(*,*) "Reinserire i dati:"<br />

END IF<br />

END DO<br />

TriangleArea = Area()<br />

WRITE(*,*) "L’area del triangolo e’:", TriangleArea<br />

CONTAINS<br />

! ------------------------------------------------------------<br />

! LOGICAL FUNCTION TriangleTest(a,b,c) :<br />

! Queste funzione riceve, attraverso i suoi parametri formali,<br />

! tre valori reali e verifica se questi possono essere lati di<br />

! un triangolo. In particolare controlla se:<br />

! (1) tutti gli argomenti sono positivi<br />

! (2) la somma di due lati e’ sempre maggiore del terzo<br />

! Se il test e’ superato questa funzione restituisce .TRUE.,<br />

! altrimenti restituisce .FALSE.<br />

! ------------------------------------------------------------<br />

LOGICAL FUNCTION TriangleTest(a,b,c)<br />

IMPLICIT NONE<br />

REAL, INTENT(IN) :: a, b, c<br />

LOGICAL :: test1, test2<br />

test1 = (a>0.0).AND.(b >0.0).AND.(c>0.0)<br />

test2 = (a+b>c).AND.(a+c>b).AND.(b+c>a)<br />

TriangleTest = test1.AND.test2 ! NB: Entrambe le condizioni<br />

! devono essere verificate<br />

END FUNCTION TriangleTest<br />

! ---------------------------------------------------------------<br />

! REAL FUNCTION Area() :<br />

! Questa funzione calcola l’area di un triangolo a mezzo della<br />

! formula di Erone. Le lunghezze a, b e c dei lati del triangolo<br />

! sono mutuate per associazione di host.<br />

! ---------------------------------------------------------------

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

Saved successfully!

Ooh no, something went wrong!