La recursividad se define, en programación como la ejecución de un mismo código, llamándose a si mismo repetidas veces, hasta que se cumpla una condición.
Ejercicio. Hacer un programa que calcule el sumatorio de un número entero usando recursividad.
Crea un programa nuevo desde Lazarus.
Escribimos una función que recibirá el número, la cual se irá llamando a si misma.
1 2 3 4 5 6 7 8 9 |
function Sumatario(num: integer): integer; begin if num < 0 then Result := 0 else if num = 0 then Result := 0 else Result := num + Sumatario(num-1); end; |
En el cuerpo principal del programa pediremos un número, que el cual. Y cual será el parámetro que enviaremos a nuestra función.
El resultado de la función será el sumario de este número. El cual lo mostramos por pantalla.
1 2 3 4 |
Writeln('Introduce un número'); Readln(numero); Valor:= Sumatario(numero); Writeln (Valor); |
El código resultante es este:
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 |
program sumatorio; uses sysutils, Math; var numero: integer; Valor: integer; function Sumatario(num: integer): integer; begin if num < 0 then Result := 0 else if num = 0 then Result := 0 else Result := num + Sumatario(num-1); end; begin Writeln('Introduce un número'); Readln(numero); Valor:= Sumatario(numero); Writeln (Valor); end. |
Aquí os dejo un vídeo del programa.
Saludos