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.