program Rec1;
{ recursive function example for counting }
{ exemplo de funcao recursiva para contador }
{ Turbo Pascal 7 source }
{ Free Pascal Source }
{ Delphi Source }
{ Joao Paulo Schwarz Schuler }
{ http://www.schulers.com/jpss }
procedure Algo(I:word); { Anything }
begin
writeln(I);
end;
procedure ContaRecursivamente(X:word); { Recursive Counter }
begin
if X>0
then begin
ContaRecursivamente(X-1);
Algo(X);
end
end; { of procedure }
procedure ContaNormal(X:word);
var I:integer;
begin
for I:=1 to X
do Algo(I);
end;
begin
WriteLn('Recursive:');
ContaRecursivamente(5);
WriteLn('Non Recursive:');
ContaNormal(5);
WriteLn('They are equivalent!!!');
end.