La recursividad se puede utilizar en cualquier lenguaje de programación......Por lo menos en los que yo utilizo sí
El problema está en que tu estás utilizando mál la recursividad......Lo que se hace es que una función se llame a si misma.......
Function Factorial(n: integer):longint;
var
i:integer;
Begin
for i:=n downto 0 do
if i=0 then
factorial:=1
else
factorial:=factorial(n)*i;
end;
En este caso, al decir......
factorial:=1, estás asignando el valor a una variable que ni siquiera está declarada......tu función, necesita un parámetro......
En este otro......
factorial:=factorial(n)*i;, llamas a la función......pero se lo asignas a una variable que no existe.....o en el que caso de que
Pascal te lo permita.....les estàs asignando a la función, un valor generado por la misma función
Ademàs.....nunca imprimes los valores
No tengo el
Pascal a la mano....y hace mucho que no lo utilizo....pero debería de ser algo así
Function Factorial(n: integer):longint;
var
i:integer,i:factorial;
Begin
for i:=n downto 0 do
if i=0 then
factorial(1);
else
factorial:=factorial(n);
factorial:=factorial*i;
write(factorial);
end;
Saludos,
Blag