-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path7.3-recursion.pas
39 lines (33 loc) · 1010 Bytes
/
7.3-recursion.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
program recursion;
{
Los algoritmos recursivos de caracterizan por llamarse a sí mismos, y tener un caso base.
En cada llamado a sí mismo, nos acercamos al caso base.
Son útiles cuando se programa en lenguajes que no poseen estructuras nativas de iteración.
}
{
A modo de ejemplo, el siguiente programa recibe un valor ingresado por teclado y calcula el factorial de dicho valor.
}
uses crt;
function factorial(n:integer):integer; //Definimos una función
begin
if(n=0)then
factorial:=1
else
factorial:=n*factorial(n-1); //Llamado recursivo. Estamos invocando a la misma función en la que estamos actualmente
end;
var
numero:integer;
begin
clrscr;
write('Ingrese un numero para calcular su factorial: ');
readln(numero);
writeln();
if(numero<0)then
writeln('Error. No se puede calcular el factorial de un numero negativo')
else
writeln('El factorial de ',numero,' es: ',factorial(numero));
writeln();
writeln('Presione cualquier tecla para cerrar...');
readkey;
clrscr;
end.