Este documento presenta información sobre recursividad. Explica que la recursividad implica definir un proceso basado en su propia definición y dividir un problema en subproblemas más pequeños. También describe conceptos como funciones, subprogramas y tipos de recursividad, e ilustra estos conceptos con ejemplos como el cálculo del área de un cuadrado de forma recursiva.
Universidad Técnica Particular de Loja
Ciclo Académico Abril Agosto 2011
Carrera: Ciencias de la Computación
Docente: Ing. Marco Patricio Abad Espinoza
Ciclo: Primero
Bimestre: Segundo
Universidad Técnica Particular de Loja
Ciclo Académico Abril Agosto 2011
Carrera: Ciencias de la Computación
Docente: Ing. Marco Patricio Abad Espinoza
Ciclo: Primero
Bimestre: Segundo
En el presente escrito, se muestra la aplicación de las estructuras repetitivas y condicionales múltiples, subprogramas (procedimientos y funciones), recursividad y además el análisis de los arreglos.
La metodología de análisis de los programas planteados en este trabajo investigativo, y que le dan solución a los problemas propuestos en la tercera evaluación del Módulo de Computación (programación), es la siguiente: las funciones, variables, constantes, arreglos, entre otros, se analizan en forma de comentarios, haciendo uso de la función de Word (Insertar- Comentario).
Sin dejar a lado el resumen de los logros, dificultades y los aprendizajes por descubrimientos de forma intencional y accidental (Heurístico inherente y la Serendipía), estos se presentan en el apartado de las conclusiones.
Es importante recalcar, que en este informe se continúa implementando las instrucciones de control (for, while, do – while, switch, break, return)y que se denominan así, ya que cuando termina la ejecución de la última sentencia, el flujo de control vuelve a la primera y comienza otra repetición delas sentencias o condiciones. Estas repeticiones se conocen como iteración o pasada a través de los ciclos.
Una función toma uno o más valores, denominados argumentos o parámetros actuales y, según el valor de éstos, devuelve un resultado en el nombre de la función. Para invocar a una función se utiliza su nombre seguido por los parámetros actuales o reales entre paréntesis en una expresión. Es decir que se podrá colocar la llamada a una función en cualquier instrucción donde se pueda usar una expresión.(Aguilar, 2003, p. 80)
Lo antes planteado hace referencia a funciones, las cuales se implementan de manera constante en este trabajo, como funciones principales, ejemplo main, y también aquellas que están dentro de subprogramas, ejemplo buscarea, las cuales tienen una forma general de ejecución: Cabecera, con la definición de la función y el cuerpo de la misma. Dentro del cuerpo de la función está el bloque de expresiones y de instrucciones.
Today is Pentecost. Who is it that is here in front of you? (Wang Omma.) Jesus Christ and the substantial Holy Spirit, the only Begotten Daughter, Wang Omma, are both here. I am here because of Jesus's hope. Having no recourse but to go to the cross, he promised to return. Christianity began with the apostles, with their resurrection through the Holy Spirit at Pentecost.
Hoy es Pentecostés. ¿Quién es el que está aquí frente a vosotros? (Wang Omma.) Jesucristo y el Espíritu Santo sustancial, la única Hija Unigénita, Wang Omma, están ambos aquí. Estoy aquí por la esperanza de Jesús. No teniendo más remedio que ir a la cruz, prometió regresar. El cristianismo comenzó con los apóstoles, con su resurrección por medio del Espíritu Santo en Pentecostés.
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “ROMPECABEZAS DE ECUACIONES DE 1ER. GRADO OLIMPIADA DE PARÍS 2024”. Esta actividad de aprendizaje propone retos de cálculo algebraico mediante ecuaciones de 1er. grado, y viso-espacialidad, lo cual dará la oportunidad de formar un rompecabezas. La intención didáctica de esta actividad de aprendizaje es, promover los pensamientos lógicos (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia, viso-espacialidad. Esta actividad de aprendizaje es de enfoques lúdico y transversal, ya que integra diversas áreas del conocimiento, entre ellas: matemático, artístico, lenguaje, historia, y las neurociencias.
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
Recursividad 2017 jdchc
1. M.Sc. Ing. Javier David Chávez Centeno
DEPARTAMENTO ACADÉMICO DE INFORMÁTICA
jdchavez5@hotmail.com
CUSCO – PERÚ
2017
2. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 2Dpto Académico de Informática
UNIDAD I
TEMA
RECURSIVIDAD
“La recursividad es la forma en la cual se especifica un
proceso basado en su propia definición”
3. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 3Dpto Académico de Informática
CONTENIDO
Evaluación de Funciones
Una función es una relación
entre un conjunto X; y otro
conjunto Y, de forma que a
cada elemento de X le
corresponde un elemento de Y.
Subprograma
Uno de los métodos para
resolver problemas, es dividirlo
en problemas más pequeños
denominados módulos o
subprogramas.
Recursividad
Un módulo se dice que es
recursivo, si durante su
ejecución se invoca asi mismo.
Dependiendo de al menos una
condición de corte que provoca
la finalización de la recursión.
Vestajas/Desventajas
Resolución de problemas de
manera natural, sencilla y
elegante.
Ineficiencia tanto en tiempo
como en memoria.
Tipos:
Según:
El número de llamadas
recursivas.
El principio de inducción.
Ejercicios Resuletos:
Area de un cuadrado, Factorial
de un número, Hanoi,
Par/Impar, Decimal a Binario,
Fibonacci, etc.
4. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 4Dpto Académico de Informática
Supongamos que alguien nos pide dibujar cuadrados
empezando por un cuadrado de 3 x 3 unidades
(amarillo) hasta obtener el cuadrado más pequeño
posible.
Entonces el siguiente cuadrado a dibujar es un
cuadrado de 2 x 2 unidades (verde), y finalmentel el
cuadrado de 1 x 1 unidad (rojo).
Para diseñar algoritmos que resuelvan este tipo de
problemas, empezando por una instancia más
pequeña, a esta técnica se llama recursividad.
5. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 5Dpto Académico de Informática
Evaluación de funciones.- Una función es una
relación entre un conjunto X (dominio) y otro conjunto
Y (codominio), de forma que a cada elemento de X le
corresponde un único elemento de Y.
Ejemplo 1: Dada la siguiente función, hallar F(2), F(0)
y F(100).
0 S 0
( )
1 S 0
i X
f x
i X
F(2) =
F(0) =
F(100) =
1
0
1
6. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 6Dpto Académico de Informática
Ejemplo 2: Se tiene la siguiente función, hallar F(0) y
F(4).
F(0) =
F(4) = 4 * F(3)
F(3) = 3 * F(2)
1
6
1
)1(*)(0
1)(0
xfxxfxsi
xfxsi
F(2) = 2 * F(1)
F(1) = 1 * F(0)
F(0) = 1
= 1
1
= 2
2
= 6
= 24
7. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 7Dpto Académico de Informática
Subprograma.- Uno de los métodos para resolver
problemas es dividirlo en problemas más pequeños en
su forma más simple llamados subproblemas
(subprogramas ó módulos).
Modulo
Función.-
Procedimiento.-
Devuelve un solo valor.
Realiza una tarea específica.
problema
8. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 8Dpto Académico de Informática
Recursividad.- Un modulo se dice que es recursiva si
durante su ejecución se invoca así mismo. Esta
invocación depende al menos de una condición que
actúa como condición de corte que provoca la
finalización de la recursión. Consta de:
Caso base: Es la parte de la definición para la que se
conoce un resultado y corresponde a la expresión mínima.
Ejemplo:
Caso recurrente: Es la parte de la definición que vuelve a
invocar al subprograma con un caso más pequeño del
mismo cada vez. Ejemplo:
0 ( ) 1si x f x
0 ( ) * ( 1)si x f x x f x
9. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 9Dpto Académico de Informática
Ventajas:
- Simplicidad de comprensión y gran potencia.
- Resolución de problemas de manera natural, sencilla
y elegante.
- Facilidad para comprobar la solución del problema.
Desventajas:
Ineficiencia tanto en tiempo como en memoria, dado
que para permitir su uso es necesario transformar el
programa recursivo en otro iterativo, que utiliza
bucles y pilas para almacenar las variables.
10. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 10Dpto Académico de Informática
Lineal (simple)
Número de llamadas
recursivas
Una llamada recursiva
(Factorial)
Decrementos en uno
(Factorial)
Tipos de Recursividad.- La clasificación se considera
según la bibliografía básica indicada.
Principio de inducción
No lineal
Mutua
Estructural
No estructural
Varias llamadas recursiva
(Hanoi)
Dos o más subprogramas se
llaman entre si (Par, Impar)
(Cuerpo del
subprograma)
(Reducción de
la complejidad)
Decrementos distintos a uno
(DecimalBinario).
11. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 11Dpto Académico de Informática
Problema 1.- Escribir una función recursiva para hallar
el área de un cuadrado.
1. ANÁLISIS
1.1 Entender el problema.
DATOS
N
(Lado)
RESULTADOS
Area
PROCESO
3 9
4 16
Ejercicios Resueltos.-
12. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 12Dpto Académico de Informática
1.2 Modelo
Area(3) = Area(2) + 5
Area(2) = Area(1) + 3
Area(1) = 1
4
1
= 4
= 9Caso
Recu-
rrente
Caso
Base
Area(N) =
1,
Area(N-1) + (2N – 1),
Si (N=1)
Si (N>1)
Caso base
Caso recurrente
13. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 13Dpto Académico de Informática
1.3 Especificación del algoritmo
- Diccionario de variables
- Pre condición
- Acción que debe realizar el algoritmo
- Post condición
{| Area = Lado x Lado |}
Calcular el área de un cuadrado conociendo su lado
{| N > 0 |}
Resultados
Datos
Area = área de un cuadrado = entero
N = lado del cuadrado = entero
14. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 14Dpto Académico de Informática
2. CODIFICACIÓN
public int Area ( int N)
{
}
if (N == 1) { Caso Base }
return 1;
else { Caso Recurrente }
return Area (N – 1) + (2 * N – 1);
// -------------------------------------------------------------
// -------------------------------------------------------------
15. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2017
JAVIER DAVID CHÁVEZ CENTENO 31/05/2017 15Dpto Académico de Informática
Gracias
¿Alguna pregunta?
You can find me at:
jdchavez5@hotmail.com
, javier david chávez centeno