Práctica sobre funciones
Funciones recursivas.
Hablamos de funciones recursivas a cualquier función de forma recursiva, es decir, cualquier función que se puede llamar a sí misma. El número de llamadas se encuentra limitado por el tamaño de la pila. Cada vez que se llama a la función, se asigna nuevo almacenamiento para los parámetros y para las variables
auto
y register
para que no se sobrescriban sus valores en llamadas anteriores que no han finalizado. Los parámetros solo son accesibles directamente para la instancia de la función en la que se crean. Los parámetros anteriores no son directamente accesibles para las siguientes instancias de la función. Se debe tener en cuenta que las variables declaradas con almacenamiento
static
no requieren nuevo almacenamiento con cada llamada recursiva. Su almacenamiento existe durante la vigencia del programa. Cada referencia a estas variables accede a la misma área de almacenamiento.este tipo de solución solo debe ser utilizada cuando una solución iterativa sencilla no sea posible. También, cuando se aplique una recursión, se debe considerar que en caso de que la solución pueda ser desarrollada tanto por recursividad como de forma iterativa, la recursividad tomará más tiempo, ya que podría necesitar la utilización de métodos adicionales, lo que restaría eficiencia y optimización. Como consideración final se puede determinar que, en ciertos casos, las soluciones recursivas pueden ser más simples de desarrollar que las iterativas; sin embargo, estas presentan un aumento en tiempo de ejecución y en la cantidad de memoria que utilizan.
A continuación se mostraran algunos ejemplos sobre este tipo de funciones:
Ejemplo 1 con c#.
int factorial( int num ); /* Function prototype */
int main()
{
int result, number;
.
.
.
result = factorial( number );
}
int factorial( int num ) /* Function definition */
{
.
.
.
if ( ( num > 0 ) || ( num <= 10 ) )
return( num * factorial( num - 1 ) );
}
Ejemplo 2 en javascript.
function factorial(n){
var res = 1;
for(var i=n; i>=1; i--){
res = res * i;
}
return res;
}
ejemplo 3 en Python.
def fun_fact(x):
if (x==1):
return 1
else:
x=(x*fun_fact(x-1))
return x
num=10
print("El factorial de ",
num, "es ",fun_fact(num))
fuentes:
- "Funciones recursivas": Funciones recursivas | Microsoft Docs
- "¿Qué es la recursividad o recursión?- Un ejemplo con Javascript":¿Qué es la recursividad o recursión? - Un ejemplo con JavaScript | campusMVP.es
- "funciones recursivas en Python":Función recursiva en Python - ▷ Cursos de Programación de 0 a Experto © Garantizados (unipython.com)
- "La utilidad de funciones recursivas y su versatilidad en el proceso de programación.":La utilidad de las Funciones Recursivas y su versatilidad en el proceso de programación - Delfino.cr
Comentarios
Publicar un comentario