Está en la página 1de 19

OBJETIVO

El objetivo de la presente sesión es:

✓ Conocer sobre recursividad


✓ Requisitos para la existencia de recursividad
✓ Ejemplos de aplicación con cadenas

ING. FELIX HUARI 1


RECURSIVIDAD
Los programas vistos hasta ahora se componen de una
serie de funciones
Estas funciones se llaman unas a otras

void Proceso(………..) bool Verifica (int n, int &p)


{ ……….. { …………
……….. …………
} }

void BuscaUbicacion(………..)
{ t=Verifica(a,b);

Proceso(…….);

}
ING. FELIX HUARI 2
RECURSIVIDAD
La recursividad es una herramienta muy potente en
algunas aplicaciones, sobre todo de calculo
La recursividad es una propiedad que posee una función
por lo cual dicha función puede llamarse (invocar) a si
misma
La recursividad puede ser utilizada como alternativa de
solución a la planteado con estructura repetitiva
Un objeto se dice que es recursivo si está definido
parcialmente en términos de si mismo
La recursividad permite definir un conjunto infinito de
objetos en términos finitos.

ING. FELIX HUARI 3


RECURSIVIDAD
Un programa con funciones recursivas pudiera
presentarse de la siguiente forma

void Proceso(………..) bool Verifica (int n, int &p)


{ ……….. { …………
Proceso(………); BuscaUbicacion(……….);
} …………..
}
void BuscaUbicacion(………..)
{ t=Verifica(a,b);

Proceso(…….);

}
ING. FELIX HUARI 4
RECURSIVIDAD
La recursividad puede ser Directa o Indirecta

Directa
La función se llama directamente a si mismo

FunciónA()

FuncionA()

ING. FELIX HUARI 5


RECURSIVIDAD
Indirecta.- La función llama a otra función, y este a su vez
llama al primero

FunciónA( )

FunciónB()

FunciónB( )

FunciónA()

ING. FELIX HUARI 6


CARACTERÍSTICAS DE RECURSIVIDAD

Para que exista la recursividad, debe cumplirse lo siguiente:


Una función recursiva debe tener una condición o
condiciones de salida
Cada llamada recursiva debe acercar o aproximar hacia
el cumplimiento de la/las condiciones de salida.
Debe existir uno o mas parámetros cuyos valores
llamados valor base o criterio base por el que la función
no se llame a si mismo
Cada vez que la función se llame a si mismo, los
parámetros que controlan la salida, debe estar mas
cerca del valor base

ING. FELIX HUARI 7


CARACTERÍSTICAS DE RECURSIVIDAD
Cada vez que se llama a una función los parámetros de
entrada y variables locales son almacenados en las
siguientes posiciones libres de memoria

Cuando termina la ejecución de la función son accedidos


en orden inverso a como se introdujeron

El espacio requerido para almacenar los valores crece


conforme a los niveles de anidamiento de las llamadas

ING. FELIX HUARI 8


CARACTERÍSTICAS DE RECURSIVIDAD
❑ Ejemplo
Una fotografía de una fotografía

ING. FELIX HUARI 9


CARACTERÍSTICAS DE RECURSIVIDAD
❑ Ejemplo
Un periodista transfiere el control a otro periodista que
esta en otra ciudad

ING. FELIX HUARI 10


OBJETOS RECURSIVOS

ING. FELIX HUARI


11
OBJETOS RECURSIVOS

ING. FELIX HUARI 12


APLICACIÓN DE RECURSIVIDAD
❑ Ejemplo
Calcular la suma de los 6 primeros enteros positivos
Plantear la solución mediante recursividad

ING. FELIX HUARI 13


APLICACIÓN DE RECURSIVIDAD
❑ Ejemplo
Calcular el producto de 2 números enteros positivos
ayb
Plantear la solución mediante recursividad

ING. FELIX HUARI 14


APLICACIÓN DE RECURSIVIDAD
❑ Ejemplo
Calcular el factorial de un numero entero n, donde
este debe ser positivo
Plantear la solución mediante recursividad

ING. FELIX HUARI 15


APLICACIÓN DE RECURSIVIDAD
❑ Ejemplo
Calcular la suma de todos los elementos de un
vector de n elementos
Plantear la solución mediante recursividad

ING. FELIX HUARI 16


APLICACIÓN DE RECURSIVIDAD
❑ Ejemplo
Escribir una función para leer, escribir y calcular el
elemento menor de un arreglo unidimensional de
tamaño n
Plantear la solución mediante recursividad

ING. FELIX HUARI 17


APLICACIÓN DE RECURSIVIDAD
❑ Ejemplo
Dada una cadena cualquiera, escribir una función
que permita determinar si dicha cadena es
palíndroma
Una cadena es de este tipo si al leer la cadena de
izquierda a derecha o viceversa es la misma cadena
Plantear la solución mediante recursividad

ING. FELIX HUARI 18


PROBLEMAS PROPUESTOS DE RECURSIVIDAD

Dado dos números enteros, se pide calcular el máximo


común divisor por el método de Euclides pero aplicando
recursividad.
Se tiene N Alumnos y por cada uno se ingresa la nota,
se pide diseñar un algoritmo que calcule la nota
promedio, la nota mayor y la nota menor, para ello
aplique recursividad.
Diseñe un algoritmo que evalué la potenciación de un
numero pero aplicando recursividad.

ING. FELIX HUARI 19

También podría gustarte