Estrctura Discreta
Estrctura Discreta
Estrctura Discreta
RECURSIVIDAD
APELLIDOS Y NOMBRES CORREO ELECTRÓNICO FIRMA
Auqui Lopez,Elian Marcela 2323010343@untels.edu.pe
DOCENTE
SEMESTRE
2023 – II
1)PRESENTACIÓN ...................................... 2
2)INTRODUCCIÓN ..................................... 2
3)DEFINICIÓN .....................................
3.1)RECURSIVIDAD ..................................... 2
3.2)CARACTERÍSTICAS ..................................... 2
3.3)TIPOS DE RECURSIVIDAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.3.1)DIRECTA .....................................
3.3.2)INDIRECTA .....................................
3.4)CUADRO COMPARATIVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.6)PSEUDOCÓDIGO ..................................... 6
3.7)IMPLEMENTACIÓN Y RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.8)EJERCICIOS DE AUTOEVALUACIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.10)CONCLUSIONES ..................................... 11
3.11)GLOSARIO ..................................... 12
3.12)BIBLIOGRAFÍA ..................................... 13
1
2 ) INTRODUCCIÓN:
En la programación , la recursividad son funciones que se llaman así mismas evitando el
uso de bucles o cualquier otro iterador, se usa para dar solución a problemas de una forma
más eficiente y elegante.
Otros nombres que recibe la recursividad son la de Recurrencia o Recursión.[1]
3) RECURSIVIDAD:
3.1) Definición:
La recursividad se puede definir como una técnica que permite que una función se llame así
misma.
Son recursivos aquellos algoritmos que, estando encapsulados dentro de una función, son
llamados desde ella misma una y otra vez.
Es decir, la recursividad es la propiedad mediante la cual un subprograma o rutina puede
llamarse así mismo.
Siendo una alternativa diferente para implementar estructuras de repetición. Se apoya en la
modularidad, pues a través de los módulos se hacen llamadas recursivas.[2]
[3] [4]
3.2) CARACTERÍSTICAS:
-Consta de una parte recursiva, otra iterativa o no recursiva y una
condición de terminación. La parte recursiva y la condición de
terminación siempre existen, en cambio la parte no recursiva puede
coincidir con la condición de terminación.
2
transformaciones gobernadas por un conjunto de reglas no ambiguas.[2]
3.3) TIPOS:
3.3.1) DIRECTA : Es aquella donde un método se llama así mismo una o varias veces
hasta que una condición o el caso base termine (“función A” llama a la “función A”)
ejm: el factorial de un número
3.3.2) INDIRECTA:Se implementa para más de una función. Por ejemplo, para dos
funciones, la función A invoca la función B, y la B invoca a la A.[1]
3
3.4) CUADRO COMPARATIVO
Una recursiva directa es aquella en la que la función Una recursiva indirecta es aquella en la que la función se
se llama directamente a sí misma. Es decir, dentro llama a sí misma a través de otra función. En lugar de
del cuerpo de la función, hay una instrucción para llamar directamente a sí misma, la función llama a otra
que se ejecute nuevamente la misma función. Esto función que, a su vez, podría llamar de nuevo a la función
crea un bucle de recursión en el que la función se original, y así sucesivamente. Esto también crea un bucle
llama a sí misma repetidamente hasta que se de recursión, pero a través de funciones intermedias.
cumpla una condición de salida.
La diferencia entre una recursiva directa e indirecta radica en si la función se llama directamente a sí misma o a
través de otra función.
Recursiva directa
def factorial_directo(n):
if n == 0:
return 1
función se llama a otra función, que a su vez se llama nuevamente a sí misma. Por ejemplo:
def factorial_indirecto(n):
if n == 0:
return 1
else:
return n * factorial_otra(n-1)
def factorial_otra(n):
return factorial_indirecto(n-1)
4
En este ejemplo, la función factorial_indirecto llama a la función factorial_otra, que a su vez
vuelve a llamar a factorial_indirecto. Ambas funciones se llaman entre sí de forma indirecta
hasta que se alcance la condición de terminación.
3.6) PSEUDOCÓDIGO
5
Comienza en el “inicio”.
Luego que se cumpla la condición mencionada se evaluará dos casos: si el ConttC es igual
a 2, entonces el “Num” será primo y en caso contrario el “Num” no será primo y se alcanza
el “Fin”.
6
3.7) PRÁCTICA GUIADA
.Ejecución de programa:
Ejercicio 2: Ingresar un
7
numero y mostrar su equivalente en binario usando una función recursiva
.Líneas de código:
.Ejecución de programa:
8
Ejercicio 3: Determinar la suma de los primeros “n” números naturales
.Líneas de código:
.Ejecución de programa:
9
10
3.9)RECURSOS CLAVES:
11
https://ccia.ugr.es/~jfv/ed1/c/cdrom/cap6/cap66.htm
https://www.uv.mx/personal/ocastillo/files/2011/04/Recursividad.pdf
https://www.youtube.com/watch?v=i9roxX8z7tk
https://www.youtube.com/watch?v=SRR4TLey2lA
https://books.google.com.pe/books/about/Manual_de_Algor
%C3%ADtmica.html?hl=es&id=2sSvS0pDfpAC&redir_esc=y
3.10)CONCLUSIONES
12
3.11) GLOSARIO:
. Bucle: Es el proceso llevado a cabo en un pedazo del código, donde se repite una
secuencia indicada por el programador hasta que se cumpla cierta condición. Es decir, son
herramientas que da la programación para reiterar cualquier acción bajo parámetros
expresados.
13
. Modularidad: Se refiere a la práctica de dividir un programa en módulos más pequeños y
manejables, cada uno con funciones y responsabilidades bien definidas. En otras palabras,
se trata de descomponer un programa en partes más pequeñas y fáciles de gestionar, en
lugar de tener un código gigantesco y monolítico.
. Funciones: Las funciones, también llamados métodos, nos permiten dividir el trabajo que
hace un programa, en tareas más pequeñas separadas de la parte principal. Los métodos
son el mecanismo por el cual los objetos interactúan entre sí.
En un programa es común tener varios objetos que interactúan invocando los métodos en
forma mutua.
. Caso base: Es el caso más sencillo posible que está trabajando en un problema tomado
por el enfoque recursivo.
3.12) BIBLIOGRAFÍA:
[1]“FAEDIS,” virtual.umng.edu.co.
http://virtual.umng.edu.co/distancia/ecosistema/odin/odin_desktop.php?
path=Li4vb3Zhcy9pbmdlbmllcmlhX2luZm9ybWF0aWNhL2VzdHJ1Y3R
1cmFfZGVfZGF0b3MvdW5pZGFkXzIv
[2]“Recursividad y Cola (Estructura de Datos),” es.slideshare.net, Nov.
03, 2019. https://es.slideshare.net/sandragutierrez124/recursividad-y-
cola-estructura-de-datos (accessed Nov. 15, 2023).
14
[3]“Redirect Notice,” Google.com, 2023. https://www.google.com/url?
sa=i&url=https%3A%2F%2Fes.wikipedia.org%2Fwiki%2FRecursi
%25C3%25B3n&psig=AOvVaw2OAKqvl-
bWOJsAYpaxvR66&ust=1700144614259000&source=images&cd=vfe
&opi=89978449&ved=0CBEQjRxqFwoTCOiCs7CaxoIDFQAAAAAdAAA
AABAD (accessed Nov. 15, 2023).
15
16