Sunteți pe pagina 1din 7

Instituto Tecnolgico de Cerro Azul

MATERIA:
Estructura de Datos
RECURSIVIDAD
TRABAJO:
Prcticas de la segunda unidad

DOCENTE:
Lic. Mara Teresa Cobos Ponce

ALUMNOS:
Felipe Landeros Francisco Javier
Santos Pascual Gustavo
Reyes Picn Emmanuel

ESPECIALIDAD:
Ingeniera en Sistemas Computacionales

CERRO AZUL, VER. 05 DE SEPTIEMBRE DEL 2014

INTRODUCCIN
La recursividad es una herramienta de programacin cuyo uso puede ser de gran utilidad al
momento de ejecutar una accin que si bien no es indefinida, puede llegar a necesitar
mucho cdigo al ser repetitivo o recursivo.
Es por esta razn que se emplea la recursividad como medio para acortar el cdigo usado y
de esta manera generar un programa sencillo en su implementacin al realizar llamadas a
funciones desde ellas mismas.
Cabe destacar que sus caractersticas que la diferencian de los ciclos son el no generar una
secuencia de llamadas infinitas a ella misma y que debe existir una salida de la secuencia de
llamadas recursivas.

DESARROLLO
A continuacin se presentan ejemplos prcticos en los que se emplea la recursividad de
diferentes maneras, con el fin de apreciar mejor su funcionamiento y su utilidad en la
programacin por estructura de datos.
Como se observa en el siguiente cdigo, este est programado para calcular la factorial de
un nmero. Esto expresado en operaciones separadas puede resultar extenso si el nmero
del que se obtendr el factorial es demasiado grande, por lo que la funcin factorial (int
numero) se llama a si misma multiplicando el nmero por su inmediato inferior las veces
que sea necesario restando una unidad a la variable numero hasta que se cumpla la
condicin de que sea menor o igual a 1, en cuyo caso no se podra seguir obteniendo el
factorial y es el cierre del llamado recursivo.
Adems es un ejemplo muy sencillo ya que no nos permite asignar el valor de la variable
numero en tiempo de ejecucin del programa, si no que se le debe indicar esto en la
compilacin, pero de momento sirve para ilustrar el tema central.

El resultado es el siguiente al ejecutar el cdigo:

En el siguiente caso, se optimiz el cdigo para que el usuario tuviera la oportunidad de


introducir el nmero del que quiere la factorial en tiempo de ejecucin y no de compilacin,
haciendo ms flexible el programa. Esto requiere una implementacin ligeramente ms
laboriosa pero dado que el programa se disea una vez y se usa muchas ms, es lgico
suponer que este programa es ms adecuado que el anterior por cuestiones prcticas que
facilitan su uso, de esta manera, slo se tiene que tiene que introducir el nmero en cuestin
en el momento que el programa lo pida y de esta manera se obtiene el resultado, por las
mismas razones que en el anterior, sin embargo, la asignacin de valor a la variable se
realiza mediante un objeto creado por nosotros mismos de la clase Scanner con la finalidad
de poder asignar un dato de tipo correcto a la variable entera. Tambin se utiliza un ciclo
do-while que excluye los valores no vlidos del tipo entero, como lo son nmeros negativos
y el cero.

La ejecucin queda de la siguiente manera:

Aqu pide el nmero a obtener el factorial, y en el siguiente paso nos da el resultado, que en
este caso es el factorial de 5, 120.

Como ltimo ejemplo tenemos un programa que realiza el clculo de los nmeros de la
serie de Fibonaci hasta el elemento que indique el usuario, utilizando para ello la
recursividad a travs de un if anidado y el uso de los ciclos do-while y for, este ltimo
usado slo para poder mostrar los diferentes datos obtenidos en orden secuencial, de
acuerdo a la serie. Como se ve en el cdigo, los if filtran los resultados para la primera y
segunda posiciones, reservadas para 1,a partir de las cuales comienza el clculo definido
que slo se detiene hasta haber alcanzado el nmero de satos requeridos por el usuario.

Aqu se ven losa resultados de su ejecucin, el programa pide el nmero que establecer los
trminos de la serie a mostrar y se observa que la cantidad de datos mostrada coincide con
la cantidada solicitada.

CONCLUSIONES
A travs de estos sencillos ejemplos es posible observar la aplicacin prctica del uso de
funciones recursivas al desarrollar la solucin a problemas que requieren mltiples
operaciones en cadena de manera que se implementa un cdigo eficiente y ahorrativo.
El incluir funcionalidades extra para el usuario va en funcin de lo que se espera que
resuelva el programa, y lo que el propio programador crea necesario implementar en el
mismo.

S-ar putea să vă placă și