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.