Sunteți pe pagina 1din 20

FUNDAMENTOS DE PROGRAMACIÓN

UNIDAD I
Tema: Recursividad
Semana 6
2018-I

Elaborado por Mg. Sierra Liñan, Fernando Alex


LOGRO DE SESIÓN

Al finalizar la sesión de clase, el estudiante implementa


algoritmos recursivos así como iterativos; utilizando
métodos de recursividad directa e indirecta;
demostrando lógica y habilidad en la implementación
del algoritmo.
AGENDA

Tema: Recursividad.
• Definición de una función recursiva
• Propiedades: Condición base - general
• Formas de Recursión (Directa - Indirecta)
• Recursividad vs Iteración
• Ejemplos Diversos
RECURSIÓN

¿Qué entendemos por


Recursividad?
CONCEPTO DE RECURSIÓN

Recursión, recurrencia o
recursividad es la forma en
la cual se especifica un
proceso basado en su propia
definición.

Resolver un problema
mediante recursión significa
que la solución depende de
las soluciones de pequeñas
instancias del mismo
problema
FORMAS DE RECURSIÓN (DIRECTA - INDIRECTA)

Una función que se llama a si


misma directa o indirectamente,
es una función recursiva.
RECURSIÓN DIRECTA Y DECLARACIÓN ANTICIPADA
EN C++

Ejemplo 01
Se pide implementar el factorial de N en forma recursiva (directa), haciendo
uso de una declaración anticipada y teniendo en cuenta el siguiente
proceso recursivo:

Fact(1) => 1
Fact(n) => n*Fact(n-1)

En el lenguaje C, podemos declarar las variables, los tipos y las


funciones antes de usarlas.
RECURSIÓN DIRECTA EN C++

Código en C++

Fact(1) => 1
Fact(n) => n*Fact(n-1)
RECURSIÓN INDIRECTA EN C++

Ejemplo 02
Se pide ingresar un número y mostrar el mensaje Par o Impar utilizando un
método recursivo (indirecto), haciendo uso de una declaración anticipada y
teniendo en cuenta el siguiente proceso recursivo:

Metodo1:
Par(0) => 1
Par(n) => Impar(n-1)

Metodo2:
Impar(0) => 0
Impar(n) => Par(n-1)
RECURSIÓN INDIRECTA EN C++

• Analice el siguiente código:

Observe que par llama a


impar, con lo cual impar debe
estar antes, pero impar llama
a par: esto se llama recursión
indirecta
RECURSIÓN INDIRECTA EN C++

Código en C++

Metodo1:
Par(0) => 1
Par(n) => Impar(n-1)

Metodo2:
Impar(0) => 0
Impar(n) => Par(n-1)
RECURSIVIDAD VS ITERACIÓN

• La recursión es una herramienta poderosa pero ocupa muchos


recursos en espacio y en tiempo.
• La recursión es una herramienta de repetición mucho mas
poderosa que la iteración, debido a que la iteración funciona a
nivel de bloque básico (lo que se repiten son un conjunto de
sentencias acabadas con un GOTO), en cambio en la recursión
se repite la función completa.
• Así como es importante «salir del bucle», no quedarnos
«colgados», en la recursión debemos garantizar el camino de
regreso.
RECURSIVIDAD VS ITERACIÓN
RECURSIVIDAD VS ITERACIÓN
FACTORIAL ITERATIVO

Código en C++
¿Preguntas?
REFERENCIA BIBLIOGRÁFICA

LIZA ÁVILA.CÉSAR Algoritmos y su Codificación en C++. (Volumen 2)


Editorial CREASOFT, Trujillo-Perú. 1ra Edición Agosto 2002.
JOYANES, Luis.P roblemas de Metodología de la Programación. McGraw Hill,
España, 1990 *
DEITEL Y DEITEL Cómo Programar en C++. Pearson Educación, México,
2004
LANGSAM, AUGSTEIN, TENENBAUM. Estructuras de Datos con C/C++, Prentice
Hall, México, 1997.
DALE, NELLProgramación y resolución de problemas con C++/2007
FIN DE LA SESION
Gracias....

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