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.

7.11 Strutture dati dinamiche 407<br />

ALLOCATE(temp,STAT=istat) ! alloca il nodo<br />

NULLIFY(temp%before,temp%after) ! annulla i puntatori<br />

! Lettura dati<br />

READ(11,100,IOSTAT=istat) temp%surname,temp%name,temp%phone<br />

100 FORMAT(A10,1X,A10,1X,A16)<br />

IF (istat/=0) EXIT input ! raggiunto l’"end of file"<br />

CALL add_node(root,temp) ! aggiunge un nodo all’albero<br />

END DO input<br />

! Stampa della lista ordinata<br />

WRITE (*,’(/,1X,A)’) "Lista ordinata: "<br />

CALL write_node(root)<br />

! Prompt per la ricerca di un elemento<br />

WRITE(*,’(/,1X,A)’) "Nominativo da cercare nella lista: "<br />

WRITE(*,’(1X,A)’,ADVANCE=’NO’) "Cognome: "<br />

READ(*,’(A)’) temp%surname<br />

WRITE(*,’(1X,A)’,ADVANCE=’NO’) "Nome: "<br />

READ (*,’(A)’) temp%name<br />

! Ricerca dell’elemento<br />

CALL find_node(root,temp,error)<br />

check: IF (error==0) THEN<br />

WRITE(*,’(/,1X,A)’) "<strong>Il</strong> record cercato e’:"<br />

WRITE(*,’(1X,7A)’) temp%surname, ’, ’, temp%name, ’ ’, temp%phone<br />

ELSE<br />

WRITE(*,’(/,1X,A)’) "L’elemento richiesto non e’ disponibile"<br />

END IF check<br />

ELSE fileopen ! connessione del file fallita<br />

WRITE(*,’(1X,A)’) "Impossibile connettere il file specificato"<br />

WRITE(*,’(1X,A,I6)’) "Codice errore:", istat<br />

END IF fileopen<br />

END PROGRAM binary_tree<br />

Può essere utile testare il precedente programma con un idoneo file di ingresso. A tale scopo,<br />

assumendo che che il file di testo rubrica.dat contenga il seguente elenco di nomi:<br />

Allen Barry 805-238-7999<br />

Kent Clark 608-555-1212<br />

Wayne Bruce 800-800-1111<br />

Canary Black 504-388-3123<br />

El Kara 567-234-5678<br />

Prince Diana 212-338-3030<br />

Luthor Lex 800-800-1111<br />

Woman Wonder 617-123-4567<br />

Jordan Al 713-721-0<strong>90</strong>1

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

Saved successfully!

Ooh no, something went wrong!