SlideShare ist ein Scribd-Unternehmen logo
1 von 31
FUNCIONES RECURSIVAS
Las funciones en matematicas son la relacion que existen entre un conjunto y otro
Para todo valor en un dominio A existe un unico valor en el contradominio o conjunto B
El grafico muestra una function compuesta ya que esta
conformada por condiciones.
Si x=0 entonces su imagen =0 de lo contrario su imagen =1
Si f(2) 2 no es igual a 0 por lo tanto f(2)=1
f(0)=?
FUNCIONES RECURSIVAS
Ahora veamos otra funcion un poco mas compleja
Si buscamos la imagen de 0 entonces su imagen =1
Que pasa con f(6)
Cumple con la regla pero vemos que la imagen llama
nuevamente a la funcion
Busquemos cual es la imagen de f(6)
f(6)=?
F(6)=6*f(5)……
Realizar el procedimiento:
El procedimiento ejecutado es un procedimiento recursivo porque recurre a utilizar la misma funcion para encontrar el
valor de la imagen entonces para buscar x yo llamo a la function n veces y llegamos a un punto donde ya no se llama a la
funcion y este el el punto de control para no volver a llamar a la funcion.
2.1. Definición
Un método recursivo es un método que se llama así mismo, ya sea directa o
indirectamente, a través de otro método.
(Deitel, H. M. & Deitel P. J., 2004)
Un método parcialmente definido en términos de sí mismo, ya sea directa o
indirectamente, a través de otro método.
(Weiss, M. A)
U2. Recursividad.
2.1. Definición
Caso base
Parte
recursiva
SI
NO
U2. Recursividad.
• TIPOS:
• Recursión simple
• Recursión múltiple
• Recursión cruzada o indirecta
• Recursión anidada
U2. Recursividad.
2.2. Procedimientos Recursivos
• FACTORIAL
• ¿Cómo se calcula el factorial de un número?
• Ejemplo:
• 0!, 1!, 2!, 3!, 4!, 5!
U2. Recursividad.
2.3. Ejemplo de Casos
• Factorial (forma iterativa)
-- Caso Base
factorial = 1;
-- Parte Recursiva
for (int i =n; i >= 1; i --)
factorial *= i;
U2. Recursividad.
factorial *= i
SI
i = n i >= 1
i --
n
factorial =1
Ejemplo de Casos
• Factorial (forma recursiva)
int factorial (int n){
if (n <= 1)
return 1;
else
return (n * factorial ( n-1 ));
}
n <= 1 return 1
return
(n * factorial (n-1))
SI
NO
U2. Recursividad.
n
2.3. Ejemplo de CasosEjemplo de Casos
FUNCIONES RECURSIVAS
N es 3
FACTORIAL 3* FACTORIAL (2)
Retorno 6
N es 2
FACTORIAL 2* FACTORIAL (1)
Retorno 2
N es 1
FACTORIAL 1* FACTORIAL (0)
Retorno 1
N es 0
FACTORIAL 1
Retorno 1
FACT FACTORIAL (3)
Ciclo del Factorial Recursivo
FUNCIONES RECURSIVAS vs FUNCIONES ESTANDAR
DE FORMA RECURSIVA SE ALMACENA UNA GRAN CANTIDAD DE DATOS
DE MANERA ESTANDAR UTILIZO 2 VARIABLES
EL PROCESO ES MUCHO MAS LENTO EN LA RECURSIVDAD POR LO QUE TENGO QUE ESTAR GUARDANDO Y SACANDO
DE LA PILA Y LLAMANDO A LA FUNCION POR LO QUE:
NO SIEMPRE VA HACER LA MEJOR SOLUCION VAMOS A DECIR QUE ES LA ULTIMA SOLUCION QUE VAMOS A
UTILIZAR
Ejercicio
• Encuentre el error en el siguiente método recursivo y explique cómo corregirlo:
int suma(int n)
{
if (n == 0)
return 0;
else
return n + suma (n);
}
U2. Recursividad.
Definición
- Es una Técnica que
permite que una
función se llame a si
misma.
Recursividad
Definition
- Un algoritmo es
recursivo si al estar
encapsulado en una
función es llamado
desde la misma función
por lo menos 1 vez.
Recursión va ligado a repetición
1.1 Validez del algoritmo recursivo
Caso Base
• Evita que el
algoritmo sea
infinito.
• El problema puede
resolverse sin tener
que hacer uso una
nueva llamada a si
mismo.
Al menos
2 elementos
Paso Recursivo
 Relaciona el resultado
del algoritmo en base
a los resultados de
casos mas simples.
 Se hacen llamadas a la
misma función pero
cada vez mas próximas
al caso base.
¿Cuándo usar recursividad?
 Es una técnica potente de programación que permite resolver problemas
complejos en forma simple elegante y clara.
 Sin Embargo:
 Sera la ultima solución a intentar en caso que los procesos iterativos
no funcionen.
 El uso de recursividad únicamente cuando no haya solución iterativa.
 Si analizamos en el caso factorial
 Por Recursividad: Se tiene que almacenar datos y direcciones en la
pila del programa.
 Por Iteración: se almacenan 2 datos nada mas.
 Existen algoritmos complejos se codifican mas fácil mediante métodos
recursivos.
RECURSIVO:
Int Factorial (int n )
{
If (n==0) return (1);
Return (n*Factorial (n-1));
}
ITERATIVO:
Int Factorial (int n )
{
Int ¡, res = 1;
For(¡=1;¡<=n;¡++ )
res = res*¡;
return (res);
}
• Dos estrategias de resolución de problemas recursivos:
• Divide y vencerás : Divide el problema de tamaño n en problemas más pequeños cada uno de
los cuales es similar al original pero de menor tamaño.
• Si se llega a una solución de los sub-problemas, se podrá construir de forma sencilla una solución al
problema general.
• Cada uno de esos sub-problemas se podrá resolver de forma directa (caso base) o dividiéndolos en
problemas más pequeños mediante la recursividad.
• Backtracking = Fuerza Bruta = Vuelta Atras. Divide la solución en pasos, en cada uno de los
cuales hay una serie de opciones que ha que probar de forma sistemática. En cada paso se
busca una posibilidad o solución o solución aceptable.
• Si se encuentra se una solución valida pasa a decidir el paso siguiente.
• Si no se encuentra una solución aceptable, se retrocede hasta la última solución aceptable
encontrada y se elige una opción distinta a la anterior. La recursividad se utiliza para poder
retroceder hasta encontrar una solución aceptable.
• Ejemplos: Juegos de tablero, laberintos, etc.
3.1 Definición de Procesos Recursivos
1. ¿Cuál es la variable de recursión?
 Es lo primero que hay que identificar
 Indica cuantas veces se repite la acción principal del proceso.
2. ¿Cuál es el dominio de la variable de recursión?
• El conjunto de números naturales de 0 a N.
3. Caso Base Resolver el problema para el primer valor del dominio de la
variable de recursión (Definido en el Paso 2)
4. Paso Recursivo  Si ya existe un proceso que hace lo que se necesita, en
este paso se lo LLAMA disminuyendo o aumentado el numero de elementos
N para que se acerque al CASO BASE. Este paso debe completar lo que
falte.
3.2 Resolución de Procesos Recursivos
Resolución de problemas recursivos. Para hallar la solución
recursiva a un problema podemos hacernos tres preguntas:
1. ¿Cómo se puede definir el problema en términos de uno o más ?
• Problemas más pequeños del mismo tipo que el original.
2. ¿Qué instancias del problema harán de caso base?
• Conforme el problema se reduce de tamaño, se alcanzará el caso base
3. ¿Cómo se usa la solución del caso base para construir una solución
• Alcanzado el caso base, determinar como ahora lograr la solución
final.
3.3 Pasos para crear un AR
Escriba un «IF»
a. caso Base  Donde la función no se llama a si misma.
Simple = No se necesita llamada recursiva (no hay repetición) Tal
vez deba almacenar el resultado en una variable.
Escriba un «ELSE»
a. Paso Recursivo  Donde la función se llama a si misma
Es la próxima entrada/estado
Esta deberá aproximarse cada vez mas al caso base
Asuma que la llamada recursiva funciona:
a. Pregúntese que hace el algoritmo?
b. Pregúntese como ayuda en la solución del problema ?
3.1.4 Base Para escribir el AR
IF (pregunta por el caso base) {
//Caso Base
} else {
// Paso Recursivo
}
Práctica (Equipo)
• De los siguientes problemas resueltos de forma iterativa, encontrar su solución
recursiva mediante codificación:
1. Fibonacci (n-1) + (n-2)
2. Conversión de un número decimal a binario (n/2, n%2)
3. Potencia (base, exponente)
U2. Recursividad.
Práctica (Equipo)
Fibonacci
int Fibonacci (int n){
//Casos Base
if (n == 0)
return 0;
else{
if (n == 1)
return 1;
// Paso recursivo
else{
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
}
U2. Recursividad.
Práctica (Equipo)
Conversión Decimal a Binario
void aBinario (int n){
// Paso recursivo
if (n >= 2)
aBinario (n/2);
System.out.print(n%2);
}
U2. Recursividad.
Práctica (Equipo)
Elevar a una potencia
int Potencia (int n, int exp){
//Casos Base
if (exp == 0)
return 1;
else{
if (exp == 1)
return n;
// Paso recursivo
else{
return n * Potencia(n, exp-1);
}
}
}
U2. Recursividad.
Recursividad & Iteración
RECURSIVIDAD
• Llamadas repetidas a los métodos.
• Termina cuando se reconoce un caso base.
• Se aproxima poco a poco a la terminación.
• Infinita cuando no reduce el problema.
• Sobrecarga de llamadas a métodos.
ITERACIÓN
• Instrucción de repetición explícita.
• Termina cuando falla la condición.
• Repetición controlada por contador.
• Infinita cuando la condición nunca se vuelve
falsa.
U2. Recursividad.
Ventajas
• Menos líneas de código.
• Refleja el problema con más naturalidad.
• Produce un programa más fácil de entender y depurar.
U2. Recursividad.
Desventajas
• Tiempo de procesador.
• Espacio en memoria, consume memoria adicional.
U2. Recursividad.
Programación en C 30
Programación en C 31
Ejemplos de funciones recursivas en C++:
#include <iostream>
#include <stdio.h>
using namespace std;
int par(int num);
int impar(int num);
main()
{
int num;
cout<<"Ingrese un numero"<<endl;
cin>>num;
if(par(num))
{
cout<<"es par";
}
else
cout<<"Es impar";
}
int par(int num)
{
if(num==0)
return(1);
else
return impar(num-1);
}
int impar(int num)
{
if(num==0)
return 0;
else
return par(num-1);
}
Construya un programar recursivo para indicar si un numero es par o impar

Weitere ähnliche Inhalte

Was ist angesagt?

Recursividad
RecursividadRecursividad
Recursividadbetzy
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 
Estructura básica de un programa en C++
Estructura básica de un programa en C++Estructura básica de un programa en C++
Estructura básica de un programa en C++Rosbelia Balza
 
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Kiim Kerrigan
 
Conversión entre binario y decimal
Conversión entre binario y decimalConversión entre binario y decimal
Conversión entre binario y decimaladr33a
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosAngel Vázquez Patiño
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Llave primaria y llave foránea
Llave primaria y llave foráneaLlave primaria y llave foránea
Llave primaria y llave foráneaTata Jaramillo
 
Calculo relacional de base de datos
Calculo relacional de base de datosCalculo relacional de base de datos
Calculo relacional de base de datosDILMER OLIVERA
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 
02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujoTete Alar
 

Was ist angesagt? (20)

Recursividad
RecursividadRecursividad
Recursividad
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Estructura básica de un programa en C++
Estructura básica de un programa en C++Estructura básica de un programa en C++
Estructura básica de un programa en C++
 
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)Ejemplos de algoritmos en C básicos (aprendiendo a programar)
Ejemplos de algoritmos en C básicos (aprendiendo a programar)
 
Calculadora
CalculadoraCalculadora
Calculadora
 
Conversión entre binario y decimal
Conversión entre binario y decimalConversión entre binario y decimal
Conversión entre binario y decimal
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 
Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Lista simple
Lista simpleLista simple
Lista simple
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Recursividad
RecursividadRecursividad
Recursividad
 
Infografia de ing. de requisitos y requerimiento
Infografia de ing. de requisitos y requerimientoInfografia de ing. de requisitos y requerimiento
Infografia de ing. de requisitos y requerimiento
 
Llave primaria y llave foránea
Llave primaria y llave foráneaLlave primaria y llave foránea
Llave primaria y llave foránea
 
Calculo relacional de base de datos
Calculo relacional de base de datosCalculo relacional de base de datos
Calculo relacional de base de datos
 
Grafo bipartito
Grafo bipartitoGrafo bipartito
Grafo bipartito
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo02 Ejercicios Resueltos diagramas de flujo
02 Ejercicios Resueltos diagramas de flujo
 

Andere mochten auch

PubCo Journal Partner Presentation
PubCo Journal Partner PresentationPubCo Journal Partner Presentation
PubCo Journal Partner PresentationGobi Canada
 
PR Research Presentation
PR Research PresentationPR Research Presentation
PR Research PresentationErica Campbell
 
Capitulo 2. la tecnologia educativa como disciplina pedagogica
Capitulo 2. la tecnologia educativa como disciplina pedagogicaCapitulo 2. la tecnologia educativa como disciplina pedagogica
Capitulo 2. la tecnologia educativa como disciplina pedagogicamegamedjai
 
Cost Seg Training 10 2010
Cost Seg Training 10 2010Cost Seg Training 10 2010
Cost Seg Training 10 2010costsegpartners
 
In hosp insulin aims kochi
In hosp insulin aims kochiIn hosp insulin aims kochi
In hosp insulin aims kochiMohan Shenoy
 
Itslearning information
Itslearning informationItslearning information
Itslearning informationitslearning
 
Portaerei cavour e battaglione san marco
Portaerei cavour e battaglione san marcoPortaerei cavour e battaglione san marco
Portaerei cavour e battaglione san marcoLorenzo97
 
DTES1: Session 1aims and purposes of education
DTES1: Session 1aims and purposes of educationDTES1: Session 1aims and purposes of education
DTES1: Session 1aims and purposes of educationAlison Hardy
 
iRangers Corporate Presentation
iRangers Corporate PresentationiRangers Corporate Presentation
iRangers Corporate PresentationMisha Hanin
 
Hardy Patt2016: An assortment box of D&T values
Hardy Patt2016: An assortment box of D&T valuesHardy Patt2016: An assortment box of D&T values
Hardy Patt2016: An assortment box of D&T valuesAlison Hardy
 
Economic Development: A Springboard for Extension Engagement (Local Food Init...
Economic Development: A Springboard for Extension Engagement (Local Food Init...Economic Development: A Springboard for Extension Engagement (Local Food Init...
Economic Development: A Springboard for Extension Engagement (Local Food Init...sondramilkie
 
Globalchildtrafficking 101110172719-phpapp02
Globalchildtrafficking 101110172719-phpapp02Globalchildtrafficking 101110172719-phpapp02
Globalchildtrafficking 101110172719-phpapp02Lina Fernandes
 

Andere mochten auch (20)

Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Cake making
Cake makingCake making
Cake making
 
PubCo Journal Partner Presentation
PubCo Journal Partner PresentationPubCo Journal Partner Presentation
PubCo Journal Partner Presentation
 
PR Research Presentation
PR Research PresentationPR Research Presentation
PR Research Presentation
 
Easy to perform
Easy to performEasy to perform
Easy to perform
 
Each and every
Each and everyEach and every
Each and every
 
References
ReferencesReferences
References
 
Capitulo 2. la tecnologia educativa como disciplina pedagogica
Capitulo 2. la tecnologia educativa como disciplina pedagogicaCapitulo 2. la tecnologia educativa como disciplina pedagogica
Capitulo 2. la tecnologia educativa como disciplina pedagogica
 
สารสนเทศ
สารสนเทศสารสนเทศ
สารสนเทศ
 
Cost Seg Training 10 2010
Cost Seg Training 10 2010Cost Seg Training 10 2010
Cost Seg Training 10 2010
 
In hosp insulin aims kochi
In hosp insulin aims kochiIn hosp insulin aims kochi
In hosp insulin aims kochi
 
Itslearning information
Itslearning informationItslearning information
Itslearning information
 
Portaerei cavour e battaglione san marco
Portaerei cavour e battaglione san marcoPortaerei cavour e battaglione san marco
Portaerei cavour e battaglione san marco
 
DTES1: Session 1aims and purposes of education
DTES1: Session 1aims and purposes of educationDTES1: Session 1aims and purposes of education
DTES1: Session 1aims and purposes of education
 
iRangers Corporate Presentation
iRangers Corporate PresentationiRangers Corporate Presentation
iRangers Corporate Presentation
 
Compensation speakasia-
Compensation speakasia-Compensation speakasia-
Compensation speakasia-
 
Hardy Patt2016: An assortment box of D&T values
Hardy Patt2016: An assortment box of D&T valuesHardy Patt2016: An assortment box of D&T values
Hardy Patt2016: An assortment box of D&T values
 
Globalização
GlobalizaçãoGlobalização
Globalização
 
Economic Development: A Springboard for Extension Engagement (Local Food Init...
Economic Development: A Springboard for Extension Engagement (Local Food Init...Economic Development: A Springboard for Extension Engagement (Local Food Init...
Economic Development: A Springboard for Extension Engagement (Local Food Init...
 
Globalchildtrafficking 101110172719-phpapp02
Globalchildtrafficking 101110172719-phpapp02Globalchildtrafficking 101110172719-phpapp02
Globalchildtrafficking 101110172719-phpapp02
 

Ähnlich wie Funciones recursivas (20)

Recursividad.pdf
Recursividad.pdfRecursividad.pdf
Recursividad.pdf
 
03 tda1 t2018
03 tda1 t201803 tda1 t2018
03 tda1 t2018
 
Cap1.1 recursividad
Cap1.1 recursividadCap1.1 recursividad
Cap1.1 recursividad
 
Funciones recursivas
Funciones recursivasFunciones recursivas
Funciones recursivas
 
Metodologia de la programacion recursividad
Metodologia de la programacion   recursividadMetodologia de la programacion   recursividad
Metodologia de la programacion recursividad
 
Recursividad
RecursividadRecursividad
Recursividad
 
Recursividad.pdf
Recursividad.pdfRecursividad.pdf
Recursividad.pdf
 
Recursividad 100329105433-phpapp01
Recursividad 100329105433-phpapp01Recursividad 100329105433-phpapp01
Recursividad 100329105433-phpapp01
 
recursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptxrecursividad EN PROGRAMACION ORIENTADA .pptx
recursividad EN PROGRAMACION ORIENTADA .pptx
 
recursividad.pptx
recursividad.pptxrecursividad.pptx
recursividad.pptx
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividad
 
Modulo4
Modulo4Modulo4
Modulo4
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
recursividadexposicion1-090727182853-phpapp01.ppt
recursividadexposicion1-090727182853-phpapp01.pptrecursividadexposicion1-090727182853-phpapp01.ppt
recursividadexposicion1-090727182853-phpapp01.ppt
 
Divide y Venceras
Divide y VencerasDivide y Venceras
Divide y Venceras
 
II Unidad
II UnidadII Unidad
II Unidad
 
II Unidad
II UnidadII Unidad
II Unidad
 
2 algoritmos-1
2 algoritmos-12 algoritmos-1
2 algoritmos-1
 

Mehr von Cesar Oswaldo Osorio Agualongo

Mehr von Cesar Oswaldo Osorio Agualongo (20)

Aprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación PythonAprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación Python
 
Notas 2 do parcial
Notas 2 do parcialNotas 2 do parcial
Notas 2 do parcial
 
Repaso excel
Repaso excelRepaso excel
Repaso excel
 
Notas 2490
Notas 2490Notas 2490
Notas 2490
 
Notas 2625
Notas 2625Notas 2625
Notas 2625
 
Material iii parcial
Material iii parcialMaterial iii parcial
Material iii parcial
 
Unidad 2 curso c
Unidad 2 curso cUnidad 2 curso c
Unidad 2 curso c
 
Parte i curso c
Parte i curso cParte i curso c
Parte i curso c
 
Punteros y funciones
Punteros y funciones Punteros y funciones
Punteros y funciones
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Material estudio c
Material estudio cMaterial estudio c
Material estudio c
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Punteros presentacion
Punteros presentacionPunteros presentacion
Punteros presentacion
 
Practica 6 manejo de archivos v1
Practica 6 manejo de archivos v1Practica 6 manejo de archivos v1
Practica 6 manejo de archivos v1
 
2do parcial c
2do parcial c2do parcial c
2do parcial c
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Punteros y funciones abril agosto 2016
Punteros y funciones abril agosto 2016Punteros y funciones abril agosto 2016
Punteros y funciones abril agosto 2016
 
Programacion semanal programacion i
Programacion semanal programacion iProgramacion semanal programacion i
Programacion semanal programacion i
 
Silabo programacion i abril2016 agosto2016
Silabo programacion i abril2016 agosto2016Silabo programacion i abril2016 agosto2016
Silabo programacion i abril2016 agosto2016
 

Kürzlich hochgeladen

LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejormrcrmnrojasgarcia
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FJulio Lozano
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajeKattyMoran3
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docxMagalyDacostaPea
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAlejandrino Halire Ccahuana
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).hebegris04
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...Martin M Flynn
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2Eliseo Delgado
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...DavidBautistaFlores1
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 

Kürzlich hochgeladen (20)

LOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejorLOS AMBIENTALISTAS todo por un mundo mejor
LOS AMBIENTALISTAS todo por un mundo mejor
 
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguaje
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 
Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdf
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...describimos como son afectados las regiones naturales del peru por la ola de ...
describimos como son afectados las regiones naturales del peru por la ola de ...
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 

Funciones recursivas

  • 1. FUNCIONES RECURSIVAS Las funciones en matematicas son la relacion que existen entre un conjunto y otro Para todo valor en un dominio A existe un unico valor en el contradominio o conjunto B El grafico muestra una function compuesta ya que esta conformada por condiciones. Si x=0 entonces su imagen =0 de lo contrario su imagen =1 Si f(2) 2 no es igual a 0 por lo tanto f(2)=1 f(0)=?
  • 2. FUNCIONES RECURSIVAS Ahora veamos otra funcion un poco mas compleja Si buscamos la imagen de 0 entonces su imagen =1 Que pasa con f(6) Cumple con la regla pero vemos que la imagen llama nuevamente a la funcion Busquemos cual es la imagen de f(6) f(6)=? F(6)=6*f(5)…… Realizar el procedimiento: El procedimiento ejecutado es un procedimiento recursivo porque recurre a utilizar la misma funcion para encontrar el valor de la imagen entonces para buscar x yo llamo a la function n veces y llegamos a un punto donde ya no se llama a la funcion y este el el punto de control para no volver a llamar a la funcion.
  • 3. 2.1. Definición Un método recursivo es un método que se llama así mismo, ya sea directa o indirectamente, a través de otro método. (Deitel, H. M. & Deitel P. J., 2004) Un método parcialmente definido en términos de sí mismo, ya sea directa o indirectamente, a través de otro método. (Weiss, M. A) U2. Recursividad.
  • 5. • TIPOS: • Recursión simple • Recursión múltiple • Recursión cruzada o indirecta • Recursión anidada U2. Recursividad. 2.2. Procedimientos Recursivos
  • 6. • FACTORIAL • ¿Cómo se calcula el factorial de un número? • Ejemplo: • 0!, 1!, 2!, 3!, 4!, 5! U2. Recursividad. 2.3. Ejemplo de Casos
  • 7. • Factorial (forma iterativa) -- Caso Base factorial = 1; -- Parte Recursiva for (int i =n; i >= 1; i --) factorial *= i; U2. Recursividad. factorial *= i SI i = n i >= 1 i -- n factorial =1 Ejemplo de Casos
  • 8. • Factorial (forma recursiva) int factorial (int n){ if (n <= 1) return 1; else return (n * factorial ( n-1 )); } n <= 1 return 1 return (n * factorial (n-1)) SI NO U2. Recursividad. n 2.3. Ejemplo de CasosEjemplo de Casos
  • 10. N es 3 FACTORIAL 3* FACTORIAL (2) Retorno 6 N es 2 FACTORIAL 2* FACTORIAL (1) Retorno 2 N es 1 FACTORIAL 1* FACTORIAL (0) Retorno 1 N es 0 FACTORIAL 1 Retorno 1 FACT FACTORIAL (3) Ciclo del Factorial Recursivo
  • 11. FUNCIONES RECURSIVAS vs FUNCIONES ESTANDAR DE FORMA RECURSIVA SE ALMACENA UNA GRAN CANTIDAD DE DATOS DE MANERA ESTANDAR UTILIZO 2 VARIABLES EL PROCESO ES MUCHO MAS LENTO EN LA RECURSIVDAD POR LO QUE TENGO QUE ESTAR GUARDANDO Y SACANDO DE LA PILA Y LLAMANDO A LA FUNCION POR LO QUE: NO SIEMPRE VA HACER LA MEJOR SOLUCION VAMOS A DECIR QUE ES LA ULTIMA SOLUCION QUE VAMOS A UTILIZAR
  • 12. Ejercicio • Encuentre el error en el siguiente método recursivo y explique cómo corregirlo: int suma(int n) { if (n == 0) return 0; else return n + suma (n); } U2. Recursividad.
  • 13.
  • 14. Definición - Es una Técnica que permite que una función se llame a si misma. Recursividad Definition - Un algoritmo es recursivo si al estar encapsulado en una función es llamado desde la misma función por lo menos 1 vez. Recursión va ligado a repetición
  • 15. 1.1 Validez del algoritmo recursivo Caso Base • Evita que el algoritmo sea infinito. • El problema puede resolverse sin tener que hacer uso una nueva llamada a si mismo. Al menos 2 elementos Paso Recursivo  Relaciona el resultado del algoritmo en base a los resultados de casos mas simples.  Se hacen llamadas a la misma función pero cada vez mas próximas al caso base.
  • 16. ¿Cuándo usar recursividad?  Es una técnica potente de programación que permite resolver problemas complejos en forma simple elegante y clara.  Sin Embargo:  Sera la ultima solución a intentar en caso que los procesos iterativos no funcionen.  El uso de recursividad únicamente cuando no haya solución iterativa.  Si analizamos en el caso factorial  Por Recursividad: Se tiene que almacenar datos y direcciones en la pila del programa.  Por Iteración: se almacenan 2 datos nada mas.  Existen algoritmos complejos se codifican mas fácil mediante métodos recursivos. RECURSIVO: Int Factorial (int n ) { If (n==0) return (1); Return (n*Factorial (n-1)); } ITERATIVO: Int Factorial (int n ) { Int ¡, res = 1; For(¡=1;¡<=n;¡++ ) res = res*¡; return (res); }
  • 17.
  • 18. • Dos estrategias de resolución de problemas recursivos: • Divide y vencerás : Divide el problema de tamaño n en problemas más pequeños cada uno de los cuales es similar al original pero de menor tamaño. • Si se llega a una solución de los sub-problemas, se podrá construir de forma sencilla una solución al problema general. • Cada uno de esos sub-problemas se podrá resolver de forma directa (caso base) o dividiéndolos en problemas más pequeños mediante la recursividad. • Backtracking = Fuerza Bruta = Vuelta Atras. Divide la solución en pasos, en cada uno de los cuales hay una serie de opciones que ha que probar de forma sistemática. En cada paso se busca una posibilidad o solución o solución aceptable. • Si se encuentra se una solución valida pasa a decidir el paso siguiente. • Si no se encuentra una solución aceptable, se retrocede hasta la última solución aceptable encontrada y se elige una opción distinta a la anterior. La recursividad se utiliza para poder retroceder hasta encontrar una solución aceptable. • Ejemplos: Juegos de tablero, laberintos, etc.
  • 19. 3.1 Definición de Procesos Recursivos 1. ¿Cuál es la variable de recursión?  Es lo primero que hay que identificar  Indica cuantas veces se repite la acción principal del proceso. 2. ¿Cuál es el dominio de la variable de recursión? • El conjunto de números naturales de 0 a N. 3. Caso Base Resolver el problema para el primer valor del dominio de la variable de recursión (Definido en el Paso 2) 4. Paso Recursivo  Si ya existe un proceso que hace lo que se necesita, en este paso se lo LLAMA disminuyendo o aumentado el numero de elementos N para que se acerque al CASO BASE. Este paso debe completar lo que falte.
  • 20. 3.2 Resolución de Procesos Recursivos Resolución de problemas recursivos. Para hallar la solución recursiva a un problema podemos hacernos tres preguntas: 1. ¿Cómo se puede definir el problema en términos de uno o más ? • Problemas más pequeños del mismo tipo que el original. 2. ¿Qué instancias del problema harán de caso base? • Conforme el problema se reduce de tamaño, se alcanzará el caso base 3. ¿Cómo se usa la solución del caso base para construir una solución • Alcanzado el caso base, determinar como ahora lograr la solución final.
  • 21. 3.3 Pasos para crear un AR Escriba un «IF» a. caso Base  Donde la función no se llama a si misma. Simple = No se necesita llamada recursiva (no hay repetición) Tal vez deba almacenar el resultado en una variable. Escriba un «ELSE» a. Paso Recursivo  Donde la función se llama a si misma Es la próxima entrada/estado Esta deberá aproximarse cada vez mas al caso base Asuma que la llamada recursiva funciona: a. Pregúntese que hace el algoritmo? b. Pregúntese como ayuda en la solución del problema ?
  • 22. 3.1.4 Base Para escribir el AR IF (pregunta por el caso base) { //Caso Base } else { // Paso Recursivo }
  • 23. Práctica (Equipo) • De los siguientes problemas resueltos de forma iterativa, encontrar su solución recursiva mediante codificación: 1. Fibonacci (n-1) + (n-2) 2. Conversión de un número decimal a binario (n/2, n%2) 3. Potencia (base, exponente) U2. Recursividad.
  • 24. Práctica (Equipo) Fibonacci int Fibonacci (int n){ //Casos Base if (n == 0) return 0; else{ if (n == 1) return 1; // Paso recursivo else{ return Fibonacci(n-1)+Fibonacci(n-2); } } } U2. Recursividad.
  • 25. Práctica (Equipo) Conversión Decimal a Binario void aBinario (int n){ // Paso recursivo if (n >= 2) aBinario (n/2); System.out.print(n%2); } U2. Recursividad.
  • 26. Práctica (Equipo) Elevar a una potencia int Potencia (int n, int exp){ //Casos Base if (exp == 0) return 1; else{ if (exp == 1) return n; // Paso recursivo else{ return n * Potencia(n, exp-1); } } } U2. Recursividad.
  • 27. Recursividad & Iteración RECURSIVIDAD • Llamadas repetidas a los métodos. • Termina cuando se reconoce un caso base. • Se aproxima poco a poco a la terminación. • Infinita cuando no reduce el problema. • Sobrecarga de llamadas a métodos. ITERACIÓN • Instrucción de repetición explícita. • Termina cuando falla la condición. • Repetición controlada por contador. • Infinita cuando la condición nunca se vuelve falsa. U2. Recursividad.
  • 28. Ventajas • Menos líneas de código. • Refleja el problema con más naturalidad. • Produce un programa más fácil de entender y depurar. U2. Recursividad.
  • 29. Desventajas • Tiempo de procesador. • Espacio en memoria, consume memoria adicional. U2. Recursividad.
  • 31. Programación en C 31 Ejemplos de funciones recursivas en C++: #include <iostream> #include <stdio.h> using namespace std; int par(int num); int impar(int num); main() { int num; cout<<"Ingrese un numero"<<endl; cin>>num; if(par(num)) { cout<<"es par"; } else cout<<"Es impar"; } int par(int num) { if(num==0) return(1); else return impar(num-1); } int impar(int num) { if(num==0) return 0; else return par(num-1); } Construya un programar recursivo para indicar si un numero es par o impar

Hinweis der Redaktion

  1. Es una estrategia que corresponde al dicho divide y venceras.
  2. Ir construyendo la solución en cada llamada recursiva.