SlideShare una empresa de Scribd logo
Estructura de datos 
Unidad II 
Recursividad 
Rubi veronica chimal Cuxin.
Introducción 
Comprender y aplicar la recursividad como herramienta de programación para el 
manejo de las estructuras de datos es indispensable pues en la carrera de un 
Ing. En sistemas computacionales podemos consultar en fuentes impresas el 
concepto de recursividad así se puede ejemplificar un caso recursivo de la vida 
cotidiana como calcular el Factorial de un número entero positivo. Para poder 
entenderle por completo hay que realizar varios ejercicios para poder identificar 
problemas resueltos de manera iterativa y encontrar su solución recursiva mediante 
codificación en algún lenguaje de programación así como analizar las ventajas y 
desventajas que este pudiese tener.
Código 
El factorial de un entero n, se expresa como un conjunto de productos: 
n * (n-1) * (n-2) * …… * 1 
Escribiendo el código en lenguaje C usando el ciclo for es de la siguiente 
manera: 
int i, factorial; 
factorial=1; 
for(i=numero;i>=1;i--) 
factorial*= i; 
Por ejemplo 5!, claramente es lo mismo que 5*4!, como se muestra 
mediante el siguiente: 
5!=5 
5!=5*(4*3*2*1) 
5!=5*(4!) 
En la figura mostrada a continuación muestra la sucesión de llamadas 
recursivas continúa hasta que 1! Se evalúa al valor 1, lo que termina la 
recursión. En la figura del lado derecho se muestran los valores 
regresados por cada llamada recursiva a su llamador, hasta que el valor 
final es calculado y regresado. 
La función recursiva factorial primero prueba para ver si una condición 
de terminación es verdadera, es decir, es número menor que o igual a 1.
Si número es en verdad menor que o igual a 1 factorial regresa 1, ya no es 
necesaria mayor recursión y el programa termina. 
El código sería el siguiente: 
using System; 
namespace ConsoleApplication14 
{ 
/// <summary> 
/// Esta clase 
/// <SUMMARY> 
class factorial 
{ 
int numero; 
int fact(int num) 
{ 
numero=num; 
if(numero<=1) 
return 1; 
else 
return(numero*fact(numero-1)); 
} 
[STAThread] 
static void Main(string[] args) 
{ 
factorial f1=new factorial(); 
Console.WriteLine("Dame el número para calcular su factorial"); 
int p,n; 
n=int.Parse(Console.ReadLine()); 
p=f1.fact(n); 
Console.WriteLine("El factorial es:n"); 
Console.Write(p+"n"); 
} 
} 
}
Conclusión 
En los programas se han analizado e implementado funciones que llaman unas a 
otras. Para algunos tipos de problemas, es útil tener funciones que se llamen a sí 
mismas. Una función recursiva es una función que se llama a sí misma, ya sea 
directa o indirectamente a través de otra función, esta es llamada para resolver un 
problema. La función sabe sólo cómo resolver el caso más simple, es decir, el 
llamado caso base. Si la función es llamada con un problema más complejo, la 
función divide dicho problema en dos partes conceptuales: una parte que la función 
ya sabe cómo ejecutar y una parte que la función no sabe cómo ejecutar. Para hacer 
factible la recursión, esta última parte debe parecerse al problema original, la función 
llama a una copia nueva de sí misma, para que empiece a trabajar sobre el problema 
más pequeño y esto se conoce como una llamada recursiva y también se llama 
el paso de recursión. El paso de recursión también incluye la palabra 
reservada return, porque el resultado será combinado con la parte del problema 
que la función supo cómo resolver para formar un resultado que será regresado al 
llamador original, posiblemente main.

Más contenido relacionado

DOCX
Recursividad
PDF
Colecciones en Python
PPTX
Diagrama de Componentes
PDF
Modelo relacional
PDF
PPT
Diagramas de Secuencia.
PDF
Consideraciones al escoger apps híbridas vs nativas
DOCX
Cuadro sinóptico estructuras de datos y su clasificación
Recursividad
Colecciones en Python
Diagrama de Componentes
Modelo relacional
Diagramas de Secuencia.
Consideraciones al escoger apps híbridas vs nativas
Cuadro sinóptico estructuras de datos y su clasificación

La actualidad más candente (20)

PPTX
Programación 3: listas enlazadas
PDF
Arreglos Bidimensionales - Java - NetBeans
PPTX
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
PPTX
Búsqueda secuencial y binaria
PPTX
Diseño conceptual
PPTX
Shell exposición
PPTX
Ordenamiento con árbol binario
PPTX
Importancia de la implementación de las listas para la estructura de datos
PPTX
Metodos de ordenamiento
PDF
Creación de tablas y relaciones en mysql workbench
PPTX
Estilos arquitectónicos
PPTX
Java pilas (Stacks) y colas (Queues)
PDF
Sistema hexadecimal
PPTX
Estructuras de datos
PDF
Codificación de Huffman
DOCX
control de concurrencia
DOCX
Metodología orientadas a objetos
PPTX
Fundamentos de BD - unidad 3 modelo relacional
DOCX
Ejercicio sql tienda informatica (1)
PPTX
Tipos de atributos y tipos de relaciones
Programación 3: listas enlazadas
Arreglos Bidimensionales - Java - NetBeans
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Búsqueda secuencial y binaria
Diseño conceptual
Shell exposición
Ordenamiento con árbol binario
Importancia de la implementación de las listas para la estructura de datos
Metodos de ordenamiento
Creación de tablas y relaciones en mysql workbench
Estilos arquitectónicos
Java pilas (Stacks) y colas (Queues)
Sistema hexadecimal
Estructuras de datos
Codificación de Huffman
control de concurrencia
Metodología orientadas a objetos
Fundamentos de BD - unidad 3 modelo relacional
Ejercicio sql tienda informatica (1)
Tipos de atributos y tipos de relaciones
Publicidad

Destacado (20)

PPTX
Presentación1
PPTX
Semana del estudiante
PDF
Silabo diseño grafico 1 (1)
PPTX
Soundcloud
ODP
Presentacions primavera
PPTX
Datos y formato condicional
PDF
Actividad 3
DOCX
Siguencia jefferson excel
PPTX
Tecnologia de la educaiòn
PPTX
El power point nuestro de cada dia.
PPTX
El fuero
DOCX
Proyecto
PPT
PPTX
PPTX
municipales2015
DOCX
La computadora
PPTX
Las drogas
DOCX
Poyecto (1)
PPTX
Presentación1
PPTX
El futuro de nuestro planeta
Presentación1
Semana del estudiante
Silabo diseño grafico 1 (1)
Soundcloud
Presentacions primavera
Datos y formato condicional
Actividad 3
Siguencia jefferson excel
Tecnologia de la educaiòn
El power point nuestro de cada dia.
El fuero
Proyecto
municipales2015
La computadora
Las drogas
Poyecto (1)
Presentación1
El futuro de nuestro planeta
Publicidad

Similar a Informe Técnico - Recursividad Unidad 2 (Rubi Veronica) (20)

PDF
Recursión
PDF
Informe Tecnico recursividad
PPTX
Presentacion
PPTX
Funciones
PDF
Funciones recursivas en C++
PPTX
Funciones en C
PPTX
Funciones
PPT
Funciones en C
PPT
FUNCIONES LENGUAJE C
PPTX
RECURSIVIDAD C++
PPTX
Recursividad 100329105433-phpapp01
PPTX
recursividad EN PROGRAMACION ORIENTADA .pptx
PPTX
recursividad.pptx
PDF
Recursividad
PDF
Capítulo 3 Algoritmos recursivos.pdf
PPT
Tecnicas de Recursividad_Programacion.ppt
PPTX
Presentacion capitulo 6
DOCX
Recursividad2019
Recursión
Informe Tecnico recursividad
Presentacion
Funciones
Funciones recursivas en C++
Funciones en C
Funciones
Funciones en C
FUNCIONES LENGUAJE C
RECURSIVIDAD C++
Recursividad 100329105433-phpapp01
recursividad EN PROGRAMACION ORIENTADA .pptx
recursividad.pptx
Recursividad
Capítulo 3 Algoritmos recursivos.pdf
Tecnicas de Recursividad_Programacion.ppt
Presentacion capitulo 6
Recursividad2019

Más de Rubi Veronica Chimal Cuxin (7)

DOCX
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
DOCX
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
DOCX
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
DOCX
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
DOCX
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
DOCX
Informe Tecnico Unidad 1 (Rubi veronica)
PPTX
Evidencias1 (Diapositivas - Rubi Veronica)
Informe técnico Unidad 7 Análisis de algoritmos (Rubí Veronica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
Informe técnico - Unidad 3 Estructuras no lineales (Rubí Verónica)
Informe técnico Unidad 4 Estructuras no lineales (Rubí Verónica)
Informe Tecnico Unidad 1 (Rubi veronica)
Evidencias1 (Diapositivas - Rubi Veronica)

Último (20)

PDF
Metodologías Activas con herramientas IAG
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
biología es un libro sobre casi todo el tema de biología
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PDF
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
Metodologías Activas con herramientas IAG
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
Escuelas Desarmando una mirada subjetiva a la educación
biología es un libro sobre casi todo el tema de biología
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
Tomo 1 de biologia gratis ultra plusenmas
Fundamentos_Educacion_a_Distancia_ABC.pdf
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
V UNIDAD - SEGUNDO GRADO. del mes de agosto
Punto Critico - Brian Tracy Ccesa007.pdf
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
Híper Mega Repaso Histológico Bloque 3.pdf

Informe Técnico - Recursividad Unidad 2 (Rubi Veronica)

  • 1. Estructura de datos Unidad II Recursividad Rubi veronica chimal Cuxin.
  • 2. Introducción Comprender y aplicar la recursividad como herramienta de programación para el manejo de las estructuras de datos es indispensable pues en la carrera de un Ing. En sistemas computacionales podemos consultar en fuentes impresas el concepto de recursividad así se puede ejemplificar un caso recursivo de la vida cotidiana como calcular el Factorial de un número entero positivo. Para poder entenderle por completo hay que realizar varios ejercicios para poder identificar problemas resueltos de manera iterativa y encontrar su solución recursiva mediante codificación en algún lenguaje de programación así como analizar las ventajas y desventajas que este pudiese tener.
  • 3. Código El factorial de un entero n, se expresa como un conjunto de productos: n * (n-1) * (n-2) * …… * 1 Escribiendo el código en lenguaje C usando el ciclo for es de la siguiente manera: int i, factorial; factorial=1; for(i=numero;i>=1;i--) factorial*= i; Por ejemplo 5!, claramente es lo mismo que 5*4!, como se muestra mediante el siguiente: 5!=5 5!=5*(4*3*2*1) 5!=5*(4!) En la figura mostrada a continuación muestra la sucesión de llamadas recursivas continúa hasta que 1! Se evalúa al valor 1, lo que termina la recursión. En la figura del lado derecho se muestran los valores regresados por cada llamada recursiva a su llamador, hasta que el valor final es calculado y regresado. La función recursiva factorial primero prueba para ver si una condición de terminación es verdadera, es decir, es número menor que o igual a 1.
  • 4. Si número es en verdad menor que o igual a 1 factorial regresa 1, ya no es necesaria mayor recursión y el programa termina. El código sería el siguiente: using System; namespace ConsoleApplication14 { /// <summary> /// Esta clase /// <SUMMARY> class factorial { int numero; int fact(int num) { numero=num; if(numero<=1) return 1; else return(numero*fact(numero-1)); } [STAThread] static void Main(string[] args) { factorial f1=new factorial(); Console.WriteLine("Dame el número para calcular su factorial"); int p,n; n=int.Parse(Console.ReadLine()); p=f1.fact(n); Console.WriteLine("El factorial es:n"); Console.Write(p+"n"); } } }
  • 5. Conclusión En los programas se han analizado e implementado funciones que llaman unas a otras. Para algunos tipos de problemas, es útil tener funciones que se llamen a sí mismas. Una función recursiva es una función que se llama a sí misma, ya sea directa o indirectamente a través de otra función, esta es llamada para resolver un problema. La función sabe sólo cómo resolver el caso más simple, es decir, el llamado caso base. Si la función es llamada con un problema más complejo, la función divide dicho problema en dos partes conceptuales: una parte que la función ya sabe cómo ejecutar y una parte que la función no sabe cómo ejecutar. Para hacer factible la recursión, esta última parte debe parecerse al problema original, la función llama a una copia nueva de sí misma, para que empiece a trabajar sobre el problema más pequeño y esto se conoce como una llamada recursiva y también se llama el paso de recursión. El paso de recursión también incluye la palabra reservada return, porque el resultado será combinado con la parte del problema que la función supo cómo resolver para formar un resultado que será regresado al llamador original, posiblemente main.