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.

298 Unità di Programma<br />

Per il calcolo del determinante di A si può ricorrere alla nota regola di Sarrus che, si ricorda,<br />

è applicabile proprio alle matrici 3 × 3:<br />

Quindi, se si definiscono un tipo punto come:<br />

TYPE punto<br />

REAL :: x ! ascissa<br />

REAL :: y ! ordinata<br />

END TYPE punto<br />

ed un tipo triangolo come:<br />

det A = x1y2 + y1x3 + x2y3 − y2x3 − y3x1 − y1x2<br />

TYPE triangolo<br />

TYPE(punto) :: P1 ! primo vertice<br />

TYPE(punto) :: P2 ! secondo vertice<br />

TYPE(punto) :: P3 ! terzo vertice<br />

END TYPE triangolo<br />

è possibile definire in maniera assolutamente semplice un operatore .AREA. che, applicato ad<br />

un oggetto di tipo triangolo ne restituisca l’area valutata secondo il procedimento anzidetto.<br />

Quanto asserito è efficacemente descritto dal seguente modulo:<br />

MODULE defin_area<br />

! Sezione dichiarativa<br />

IMPLICIT NONE<br />

TYPE punto<br />

REAL :: x ! ascissa<br />

REAL :: y ! ordinata<br />

END TYPE punto<br />

TYPE triangolo<br />

TYPE(punto) :: P1 ! primo vertice<br />

TYPE(punto) :: P2 ! secondo vertice<br />

TYPE(punto) :: P3 ! terzo vertice<br />

END TYPE<br />

TYPE(triangolo) :: mytr<br />

INTERFACE OPERATOR(.AREA.)<br />

MODULE PROCEDURE area<br />

END INTERFACE<br />

CONTAINS<br />

FUNCTION area(mytr)<br />

! *** Sezione dichiarativa ***<br />

IMPLICIT NONE

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

Saved successfully!

Ooh no, something went wrong!