{ File: ricors1.pas }

{ Scopo: primo esempio di procedura ricorsiva }

program EsempioRicorsione;
var
  j : integer;


  procedure Ricorsiva (i: integer);
  begin { Ricorsiva }
    if i = 0 then
      writeln('Ho finito')
    else
    begin
      writeln('Adesso i vale ', i);
      Ricorsiva(i-1)
    end
  end; { Ricorsiva }


begin { EsempioRicorsione }
  writeln('Inserisci un intero non negativo');
  readln(j);
  Ricorsiva(j)
end. { EsempioRicorsione }


{ ESEMPIO DI ESECUZIONE:

Inserisci un numero non negativo
3
Adesso i vale 3
Adesso i vale 2
Adesso i vale 1
Ho finito

}