program usaListe; { Versione : 5 marzo 1997 } uses {wincrt;} naturali, listarr; var L:Lista; var FileDati:Text; FileName:string; M:Nat; procedure LeggiListaR(var L:Lista; var Inn:Text); {procedura ricorsiva che legge una lista reverse degli elementi in input} var M:Nat; begin if not EOF(Inn) then begin M.LeggiNat(Inn); L.Insert(M,L.First); LeggiListaR(L,Inn) end; end; procedure LeggiListaC(var L:Lista; var Inn:Text); {procedura ricorsiva che legge una lista di elementi in un contenuti in un file } var M:Nat; begin if not EOF(Inn) then begin M.LeggiNat(Inn); L.Insert(M,L.LEnd); LeggiListaC(L,Inn) end; end; begin writeln('Dammi il nome del file dati:'); readln(FileName); assign (FileDati, FileName); reset(FileDati); L.MakeNull; LeggiListaR(L, FileDati); writeln('Dammi il numero da cercare '); M.LeggiNat(Input); readln; M.Stampa; if L.Locate(M)= L.LEnd then writeln(' non compare nella lista ') else begin write(' compare in posizione '); writeln (L.Locate(M), ' nella lista:') end; L.PrintL; Close(FileDati); readln; end.