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.