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:




Comentarios

Entradas populares de este blog

ventaja del sistema operativo

conjuntos numericos aplicados a la vida cotidiana