SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
PRESENTADO POR:
Yelit, Conde Tellez
La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera
que contiene otra muñeca más pequeña dentro de sí. Y así, una dentro de
otra.
El programa se
fracciona en
muchos módulos
que produce
muchos
beneficios
(Jayanes Aguilar)
En programación,
una función designa
una parte del
código que se
ejecuta al
momentos de las
llamadas
(Juganaru Mathieu)
Aislar mejor los
problemas.
Escribir programas
correctos más
rápidos
La declaración de una función de hace con :
Tipo nombre_función(lista parámetros con tipos) { }
Código
Donde tienen
declaraciones de
variables
Return expresion;
El return se utiliza en las funciones se tipo void.
Return;
A continuación se presenta algunos ejemplos de función:
void nada ( )
{
}
void nada 2 ( )
{
return;
}
int min (int a, int b)
{
If (a<=b)
return;
else
return b;
}
double sin(doublé x)
double cos(doublé x)
double tan(doublé x)
Para las funciones trigonométricas.
double exp(doublé x) que significa 𝑒 𝑥
.
double pow(x, y) que es la potencia 𝑥 𝑦
.
double sqrt(doublé x) que significa 𝑥.
Int abs(int n): valor absoluto.
En la biblioteca < stdio.h > de estándares
de entrada y otro de salida
Teclado pantalla
respectivamente
int
char
double
void
Son de tipo entero (abc
y ABC)
Caracteres
almacenados al inicio
del argumento.
Notación decimal con
signo y punto decimal
Impresión apuntador
La recursividad
es un concepto
fundamental en
matemáticas y
en computación.
Es una alternativa
diferente para
implementar estructuras
de repetición (ciclos). Los
módulos se hacen
llamadas recursivas.
Se puede usar en toda
situación en la cual la solución
pueda ser expresada como una
secuencia de movimientos,
pasos o transformaciones
gobernadas por un conjunto de
reglas no ambiguas.
R. DIRECTA R. INDIRECTA
El código de la función P( ) contiene una
sentencia que invoca a P( ).
invoca a la función a P( ), que
invoca a su vez a la función Q( ).
Las funciones recursivas son precisamente las funciones que pueden ser
calculados, con el.
Las funciones se
pueden implementar
de modo
Recursivo
Iterativo
Se basa en una
estructura de un
control y selección.
Utiliza una estructura
repetitiva.
Las funciones recursivas se componen de casos:
una solución simple para un caso particular (puede haber más de
un caso base).
una solución que involucra volver a utilizar la función original,
con parámetros que se acercan más al caso base. Los pasos
que sigue el caso recursivo son los siguientes:
1.El procedimiento
se llama a sí mismo
2. El problema se
resuelve, tratando
el mismo
problema pero de
tamaño menor
3.La manera en la cual
el tamaño del problema
disminuye asegura que
el caso base
eventualmente se
alcanzará
Escribe un programa que calcule el factorial (!) de un entero no negativo.
He aquí algunos ejemplos de
factoriales:
•1! = 1
• 2! = 2 2 * 1
• 3! = 6 3 * 2 * 1
• 4! = 24 4 * 3 * 2 * 1
• 5! = 120 5 * 4 * 3 * 2 * 1
A continuación veremos la secuencia de factoriales.
0! = 1
1! = 1 = 1 * 1 = 1 * 0!
2! = 2 = 2 * 1 = 2 * 1!
3! = 6 = 3 * 2 * 1 = 3 * 2!
4! = 24 = 4 * 3 * 2 * 1 = 4 * 3!
5! = 120 = 5 * 4 * 3 * 2 * 1 = 5 * 4!
...
N! = N * (N – 1)!
Solución:
Aquí podemos ver la secuencia que toma el factorial
N ! =
1
N * (N – 1) !
si N = 0 (base)
si N > 0 (recursión)
Un razonamiento recursivo tiene dos partes: la base y la regla
recursiva de construcción. La base no es recursiva y es el punto
tanto de partida como de terminación de la definición.
Organicemos
nuestro diagrama
de flujo tanto
iterativo, como
recursivo
public int factorial (int n) {
int fact = 1;
for (int i = 1; i <= n; i++)
fact = i * fact;
return fact;
}
int factorial (int n)
comienza
fact ← 1
para i ← 1 hasta n
fact ← i * fact
Regresa fact
termina
A continuación
veremos como
funciona en el
programa C++
public int factorial (int n) {
if n == 0 return 1;
Else
return factorial (n-1) * n;
}
int factorial (int n)
Comienza
si n = 0 entonces
regresa 1
Otro
regresa factorial (n-1)*n
termina
Es importante determinar un
caso base, es decir un
punto en el cual existe una
condición por la cual no se
requiera volver a llamar a la
misma función.
Cada término de la serie suma los 2 anteriores. Fórmula
recursiva
fib(n) = fib (n - 1) + fib (n - 2)
Caso base: Fib (0)=0; Fib (1)=1
Caso recursivo: Fib (i) = Fib (i -1) + Fib(i -2)
public static int fib(int n){
if (n <= 1) return n; //condición base
else
return fib(n-1)+fib(n-2); //condición recursiva
}
Valores: 0, 1, 1, 2, 3, 5, 8...
A continuación
veremos como
funciona en el
programa C++
La razón fundamental es que existen numerosos
problemas complejos que poseen naturaleza
recursiva y consecuencia, son mas fáciles de
implementar con algoritmos de este tipo.
Primera: Podemos concluir que la función está definida por su nombre, que
debe ser un identificador único, ya que es la aplicación que se refiere a
una regla que se asigna a cada elemento de un conjunto.
Segundo: La recursividad es una alternativa diferente para implementar
estructuras de repetición, se puede usar en toda situación en la cual la
solución pueda ser expresada como una secuencia de movimientos.
Tercera: Por último, una función recursiva puede invocarse así misma en
forma directa o indirecta, donde puede dar origen a una recursión infinita.
Funciones recursivas

Más contenido relacionado

La actualidad más candente

Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relaciónjosecuartas
 
Modelo entidad relación BD Matriculas
Modelo entidad relación BD MatriculasModelo entidad relación BD Matriculas
Modelo entidad relación BD MatriculasEmerson Garay
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de DatosDARKGIRL93
 
Tabla Comparativa SWITCHES CISCO
Tabla Comparativa SWITCHES CISCOTabla Comparativa SWITCHES CISCO
Tabla Comparativa SWITCHES CISCOliras loca
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de usoSaul Mamani
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEustakiu Padilla
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesjmachado614
 
Dependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosDependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosEsteban Andres Diaz Mina
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
Diagrama uml ing software i promecys
Diagrama uml ing software i promecysDiagrama uml ing software i promecys
Diagrama uml ing software i promecysLeonel Narvaez Ruiz
 
Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisisJavier Rivera
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasknowallrpa
 
Estados y transiciones de un proceso
Estados y transiciones de un procesoEstados y transiciones de un proceso
Estados y transiciones de un procesoJHOVANI189612GAZGA
 

La actualidad más candente (20)

Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
Modelo entidad relación BD Matriculas
Modelo entidad relación BD MatriculasModelo entidad relación BD Matriculas
Modelo entidad relación BD Matriculas
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 
Tabla Comparativa SWITCHES CISCO
Tabla Comparativa SWITCHES CISCOTabla Comparativa SWITCHES CISCO
Tabla Comparativa SWITCHES CISCO
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Arboles de expresion
Arboles de expresionArboles de expresion
Arboles de expresion
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Dependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de DatosDependencias Funcionales en Bases de Datos
Dependencias Funcionales en Bases de Datos
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Ordenamiento por insercion
Ordenamiento por insercionOrdenamiento por insercion
Ordenamiento por insercion
 
Diagrama uml ing software i promecys
Diagrama uml ing software i promecysDiagrama uml ing software i promecys
Diagrama uml ing software i promecys
 
Modelos de red
Modelos de redModelos de red
Modelos de red
 
Diagrama de casos de usos
Diagrama de casos de usosDiagrama de casos de usos
Diagrama de casos de usos
 
Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisis
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Estados y transiciones de un proceso
Estados y transiciones de un procesoEstados y transiciones de un proceso
Estados y transiciones de un proceso
 
METODOS Y MODELOS POO
METODOS Y MODELOS POOMETODOS Y MODELOS POO
METODOS Y MODELOS POO
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 

Similar a Funciones recursivas (20)

Algoritmos y Estructura de Datos
Algoritmos y Estructura de DatosAlgoritmos y Estructura de Datos
Algoritmos y Estructura de Datos
 
2 algoritmos-1
2 algoritmos-12 algoritmos-1
2 algoritmos-1
 
Recursividad.pdf
Recursividad.pdfRecursividad.pdf
Recursividad.pdf
 
Capítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimientoCapítulo 6 funciones y procedimiento
Capítulo 6 funciones y procedimiento
 
Recursividad
RecursividadRecursividad
Recursividad
 
Recursividad.pdf
Recursividad.pdfRecursividad.pdf
Recursividad.pdf
 
03 tda1 t2018
03 tda1 t201803 tda1 t2018
03 tda1 t2018
 
Metodologia de la programacion recursividad
Metodologia de la programacion   recursividadMetodologia de la programacion   recursividad
Metodologia de la programacion recursividad
 
Modulo4
Modulo4Modulo4
Modulo4
 
Factorial en C++
Factorial en C++Factorial en C++
Factorial en C++
 
Funciones
FuncionesFunciones
Funciones
 
Funciones recursivas en C++
Funciones recursivas en C++Funciones recursivas en C++
Funciones recursivas en C++
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Catalan
CatalanCatalan
Catalan
 
Practica 1
Practica 1Practica 1
Practica 1
 
Recursividad
RecursividadRecursividad
Recursividad
 
Funciones y procedimientos
Funciones y procedimientosFunciones y procedimientos
Funciones y procedimientos
 
Catalan
CatalanCatalan
Catalan
 
Catalan
CatalanCatalan
Catalan
 
Catalan
CatalanCatalan
Catalan
 

Último

CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirPaddySydney1
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwealekzHuri
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPANEP - DETP
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 

Último (20)

CULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartirCULTURA NAZCA, presentación en aula para compartir
CULTURA NAZCA, presentación en aula para compartir
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtweBROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
BROCHURE EXCEL 2024 FII.pdfwrfertetwetewtewtwtwtwtwtwtwtewtewtewtwtwtwtwe
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Marketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETPMarketing y servicios 2ºBTP Cocina DGETP
Marketing y servicios 2ºBTP Cocina DGETP
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 

Funciones recursivas

  • 2. La Matrushka es una artesanía tradicional rusa. Es una muñeca de madera que contiene otra muñeca más pequeña dentro de sí. Y así, una dentro de otra.
  • 3. El programa se fracciona en muchos módulos que produce muchos beneficios (Jayanes Aguilar) En programación, una función designa una parte del código que se ejecuta al momentos de las llamadas (Juganaru Mathieu) Aislar mejor los problemas. Escribir programas correctos más rápidos
  • 4. La declaración de una función de hace con : Tipo nombre_función(lista parámetros con tipos) { } Código Donde tienen declaraciones de variables Return expresion; El return se utiliza en las funciones se tipo void. Return; A continuación se presenta algunos ejemplos de función: void nada ( ) { } void nada 2 ( ) { return; } int min (int a, int b) { If (a<=b) return; else return b; }
  • 5. double sin(doublé x) double cos(doublé x) double tan(doublé x) Para las funciones trigonométricas. double exp(doublé x) que significa 𝑒 𝑥 . double pow(x, y) que es la potencia 𝑥 𝑦 . double sqrt(doublé x) que significa 𝑥. Int abs(int n): valor absoluto. En la biblioteca < stdio.h > de estándares de entrada y otro de salida Teclado pantalla respectivamente
  • 6. int char double void Son de tipo entero (abc y ABC) Caracteres almacenados al inicio del argumento. Notación decimal con signo y punto decimal Impresión apuntador
  • 7. La recursividad es un concepto fundamental en matemáticas y en computación. Es una alternativa diferente para implementar estructuras de repetición (ciclos). Los módulos se hacen llamadas recursivas. Se puede usar en toda situación en la cual la solución pueda ser expresada como una secuencia de movimientos, pasos o transformaciones gobernadas por un conjunto de reglas no ambiguas.
  • 8. R. DIRECTA R. INDIRECTA El código de la función P( ) contiene una sentencia que invoca a P( ). invoca a la función a P( ), que invoca a su vez a la función Q( ). Las funciones recursivas son precisamente las funciones que pueden ser calculados, con el.
  • 9. Las funciones se pueden implementar de modo Recursivo Iterativo Se basa en una estructura de un control y selección. Utiliza una estructura repetitiva.
  • 10. Las funciones recursivas se componen de casos: una solución simple para un caso particular (puede haber más de un caso base). una solución que involucra volver a utilizar la función original, con parámetros que se acercan más al caso base. Los pasos que sigue el caso recursivo son los siguientes: 1.El procedimiento se llama a sí mismo 2. El problema se resuelve, tratando el mismo problema pero de tamaño menor 3.La manera en la cual el tamaño del problema disminuye asegura que el caso base eventualmente se alcanzará
  • 11. Escribe un programa que calcule el factorial (!) de un entero no negativo. He aquí algunos ejemplos de factoriales: •1! = 1 • 2! = 2 2 * 1 • 3! = 6 3 * 2 * 1 • 4! = 24 4 * 3 * 2 * 1 • 5! = 120 5 * 4 * 3 * 2 * 1
  • 12. A continuación veremos la secuencia de factoriales. 0! = 1 1! = 1 = 1 * 1 = 1 * 0! 2! = 2 = 2 * 1 = 2 * 1! 3! = 6 = 3 * 2 * 1 = 3 * 2! 4! = 24 = 4 * 3 * 2 * 1 = 4 * 3! 5! = 120 = 5 * 4 * 3 * 2 * 1 = 5 * 4! ... N! = N * (N – 1)!
  • 13. Solución: Aquí podemos ver la secuencia que toma el factorial N ! = 1 N * (N – 1) ! si N = 0 (base) si N > 0 (recursión) Un razonamiento recursivo tiene dos partes: la base y la regla recursiva de construcción. La base no es recursiva y es el punto tanto de partida como de terminación de la definición. Organicemos nuestro diagrama de flujo tanto iterativo, como recursivo
  • 14. public int factorial (int n) { int fact = 1; for (int i = 1; i <= n; i++) fact = i * fact; return fact; } int factorial (int n) comienza fact ← 1 para i ← 1 hasta n fact ← i * fact Regresa fact termina A continuación veremos como funciona en el programa C++
  • 15. public int factorial (int n) { if n == 0 return 1; Else return factorial (n-1) * n; } int factorial (int n) Comienza si n = 0 entonces regresa 1 Otro regresa factorial (n-1)*n termina Es importante determinar un caso base, es decir un punto en el cual existe una condición por la cual no se requiera volver a llamar a la misma función.
  • 16. Cada término de la serie suma los 2 anteriores. Fórmula recursiva fib(n) = fib (n - 1) + fib (n - 2) Caso base: Fib (0)=0; Fib (1)=1 Caso recursivo: Fib (i) = Fib (i -1) + Fib(i -2) public static int fib(int n){ if (n <= 1) return n; //condición base else return fib(n-1)+fib(n-2); //condición recursiva } Valores: 0, 1, 1, 2, 3, 5, 8...
  • 18.
  • 19. La razón fundamental es que existen numerosos problemas complejos que poseen naturaleza recursiva y consecuencia, son mas fáciles de implementar con algoritmos de este tipo.
  • 20. Primera: Podemos concluir que la función está definida por su nombre, que debe ser un identificador único, ya que es la aplicación que se refiere a una regla que se asigna a cada elemento de un conjunto. Segundo: La recursividad es una alternativa diferente para implementar estructuras de repetición, se puede usar en toda situación en la cual la solución pueda ser expresada como una secuencia de movimientos. Tercera: Por último, una función recursiva puede invocarse así misma en forma directa o indirecta, donde puede dar origen a una recursión infinita.