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.

406 Puntatori<br />

equal_to = .TRUE.<br />

ELSE<br />

equal_to = .FALSE.<br />

END IF<br />

END FUNCTION equal_to<br />

END MODULE btree<br />

PROGRAM binary_tree<br />

!<br />

! Scopo: Legge da file una sequenza di nominativi e relativi numeri<br />

! di telefono e li immagazzina in un albero binario. Dopo che<br />

! i valori sono stati immagazzinati essi vengono stampati<br />

! secondo l’ordinamento lessicografico. A questo punto l’utente<br />

! puo’ inserire un nome per verificare che lo stesso sia presente<br />

! nella rubrica. In caso affermativo viene stampato il record<br />

! a cui appartiene.<br />

!<br />

USE btree<br />

IMPLICIT NONE<br />

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

INTEGER :: error ! "error flag": 0 = ok<br />

CHARACTER(LEN=20) :: filename ! nome del file di dati<br />

INTEGER :: istat ! "variabile di stato": 0 = ok<br />

TYPE(node),POINTER :: root ! puntatore al nodo root<br />

TYPE(node),POINTER :: temp ! puntatore temporaneo<br />

! *** Sezione esecutiva ***<br />

! "Annullamento" dei nuovi puntatori<br />

NULLIFY(root,temp)<br />

! Lettura del nome del file di dati<br />

WRITE(*,*) "Nome del file di dati: "<br />

READ(*,’(A20)’) filename<br />

! Connessione del file di ingresso.<br />

OPEN(UNIT=11,FILE=filename,STATUS=’OLD’,ACTION=’READ’,IOSTAT=istat)<br />

fileopen: IF (istat==0) THEN ! connessione avvenuta con successo<br />

! Dal momento che il file e’ stato connesso con successo, viene allocato<br />

! spazio in memoria per ciascun nodo, vengono letti i dati da inserire<br />

! nel nodo, quindi il nodo viene inserito nell’albero<br />

input: DO

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

Saved successfully!

Ooh no, something went wrong!