program Rec2;
{ recursive function example for backward counting     }
{ exemplo de funcao recursiva para contador regressivo }
{ 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
        Algo(X);
        ContaRecursivamente(X-1);
        end
end; { of procedure }


procedure ContaNormal(X:word);
var I:integer;
begin
for I:=X downto 1
    do Algo(I);
end;


begin
WriteLn('Recursive:');
ContaRecursivamente(5);
WriteLn('Non Recursive:');
ContaNormal(5);
WriteLn('They are equivalent!!!');
end.