Está en la página 1de 17

UNIVERSIDAD NACIONAL TECNOLÓGICA DE LIMA SUR

FACULTAD DE INGENIERÍA Y GESTIÓN

CARRERA PROFESIONAL DE INGENIERÍA DE SISTEMAS

RECURSIVIDAD
APELLIDOS Y NOMBRES CORREO ELECTRÓNICO FIRMA
Auqui Lopez,Elian Marcela 2323010343@untels.edu.pe

Avila Arpasi, Karlo Alessandro 2323010053@untels.edu.pe

Chapilliquen Valencia,Rodrigo Gabriel 2323010342@untels.edu.pe


Huañahue Machacuay, Jose Manuel 2323010175@untels.edu.pe

Morales Carrion,Giancarlos 2323010007@untels.edu.pe


Livia Durand, Adriana Almendra 2323010559@untels.edu.pe

DOCENTE

Mg. Julca Flores Janett Deisy

SEMESTRE

2023 – II

Villa El Salvador 2023


ÍNDICE
PÁGINA

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.5)DIAGRAMA DE FLUJO ..................................... 5

3.6)PSEUDOCÓDIGO ..................................... 6

3.7)IMPLEMENTACIÓN Y RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.7)PRÁCTICA GUIADA ..................................... 7

3.8)EJERCICIOS DE AUTOEVALUACIÓN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.9)RECURSOS CLAVE ..................................... 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.

-Cuando se usa la recursividad se debe tomar en cuenta que es


necesario asegurarse que llega un momento en que no se hacen más
llamadas recursivas, sino el programa no parará nunca.

-Utilizando la recursividad, la resolución de un problema se reduce a


uno esencialmente igual pero menos complejo.

-Se puede usar en toda situación en la cual la solución pueda ser


expresada como una secuencia de movimientos, pasos o

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

Recursiva directa Recursiva indirecta

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

else return n * factorial_directo(n-1)

En este ejemplo, la función factorial_directo se invoca a sí misma dentro de la línea return n


* factorial_directo(n-1). Esto permite que la función se llame repetidamente hasta que se
alcance una condición de terminación (en este caso, cuando n es igual a 0).

función recursiva indirecta

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.5) DIAGRAMA DE FLUJO

3.6) PSEUDOCÓDIGO

5
Comienza en el “inicio”.

Se ingresa un número y se guarda en “Num”.

Se declaran las variables i = 1 y ContC=0. El bucle indicará que si el residuo de la división


entre 5 y el “i” es igual 0, aumentará en uno el valor de ContC. Todo esto se repetirá hasta
que el “i” sea igual a “Num”.

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”.

3.7) IMPLEMENTACIÓN Y RESULTADOS

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:

3.8) EJERCICIOS DE AUTOEVALUACIÓN:

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

En conclusión, la recursividad es una poderosa técnica en programación que ofrece


beneficios significativos, pero también conlleva desafíos potenciales. La recursividad es una
herramienta valiosa que puede mejorar la legibilidad del código y simplificar la resolución
de problemas, pero su aplicación requiere comprensión, cuidado y consideración de las
implicaciones de rendimiento.

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.

. Estructuras de repetición : Son un tipo de estructura de control en programación que


permiten repetir un conjunto de instrucciones varias veces. Las más comunes son while,
repeat y for, pero existen otras variantes como do-while y foreach. Es fundamental tener en
cuenta las condicionales de salida para evitar bucles infinitos y fallos en el sistema.

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.

. Iteración: Consiste en reiterar un conjunto de instrucciones o acciones con uno o varios


objetivos. Para citar un ejemplo, muchas páginas web están preparadas para adaptarse a
cambios en su estructura, tales como alteraciones estéticas o del número de secciones
accesibles, cuyos enlaces se muestran en forma de pestañas; en este último caso, si se
utiliza una iteración para colocar una por una y se pide una verificación, los desarrolladores
pueden activar y desactivar cada elemento de acuerdo a sus necesidades, sin provocar un
error en el momento de carga.

. 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).

[4]“Redirect Notice,” Google.com, 2023. https://www.google.com/url?


sa=i&url=https%3A%2F%2Fa01205866.medium.com%2Festructuras-
de-datos-recursividad-y-%25C3%25A1rboles-
5ad7b75ef1fb&psig=AOvVaw2OAKqvl-
bWOJsAYpaxvR66&ust=1700144614259000&source=images&cd=vfe
&opi=89978449&ved=0CBEQjRxqFwoTCOiCs7CaxoIDFQAAAAAdAAA
AABAI (accessed Nov. 15, 2023).

[5]“Redirect Notice,” Google.com, 2023. https://www.google.com/url?


sa=i&url=http%3A%2F%2Festructura-u1.blogspot.com
%2F2010%2F01%2Funidad-3-
recursividad.html&psig=AOvVaw2OAKqvl-
bWOJsAYpaxvR66&ust=1700144614259000&source=images&cd=vfe
&opi=89978449&ved=0CBEQjRxqFwoTCOiCs7CaxoIDFQAAAAAdAAA
AABAR (accessed Nov. 15, 2023).

15
16

También podría gustarte