--este programa presenta la utilizacion de llamadas recursivas

package fact is
	result:integer;
	n:integer;
	
	procedure f(n:integer) is
	begin
		result:=result*n;
		if (n=1)
		then
			null;
		else
			f(n-1);
		end if;
	end;
begin
	result:=1;
	write('f');write(':');write(' ');
	read(n);
	f(n);
	write(result);
	read(n);
end;