RECURSIVIDAD PRACTICA
Enviado por Elías Jesé Ochoa Corzo • 9 de Noviembre de 2022 • Práctica o problema • 1.041 Palabras (5 Páginas) • 59 Visitas
Objetivos
Para esta actividad tenemos en mira los siguientes objetivos:
- Realizar una aplicación que permita resolver los algoritmos recursivos y obtener cada uno de sus resultados.
- Aplicar la Estructura de Datos para resolver problemas relacionados a la ingeniería.
- Desarrollar nuevas habilidades en la programación.
Desarrollo
Para esta primera practica en introducción a nuestro nuevo curso Estructura de Datos analizamos nuevos conceptos de suma importancia para el manejo adecuado de datos y uno de ellos fue la Recursividad.
En la recursividad tenemos la posibilidad de definir un tipo de datos en términos de sí mismo y esto permite establecer instancias complejas de un proceso en términos de instancias más simples y de una o más instancias finales definidas explícitamente. Además de sus partes que componen como lo son:
- Caso base (mayormente es la condición if)
- Recursividad (Llamada al mismo método con valores distintos en cada llamada)
- Creación del proyecto, paquete y clases a usar
Iniciando esta practica en mi caso cree un proyecto del tipo Java with Ant > Java Application nombrado RecursividadGpoB siguiendo las buenas prácticas de programación de Java usando la forma de camello, seguido por nuestro paquete contenedor de las clases y nuestras clases en donde Clase_Principal almacenara los llamados e ingresos de valores para nuestas operaciones como también nuestro método principal public static main, y nuestra clase Recursividad almacenara cada uno de los métodos para las operaciones y cálculos por hacer, por lo que el orden quedo asi:
[pic 1]
Entonces teniendo en cuenta la pequeña definición tuvimos en la mira solucionar y crear un algoritmo para:
- Encontrar la factorial de un numero (n)
Por lo tanto, tomando en cuenta las partes de la recursividad analizamos y llegamos a una conclusión de que cada una de las partes se componen de esta manera, todo estos procedimientos van en nuestra clase Recursividad:
Caso base
if (n == 1) donde n es nuestro numero
Recursividad
return n * factorial(n - 1) en donde return n es el regreso del valor de nuestro numero por la llamada de nuestro método pero con diferente valor puesto que se le resta -1, de esta manera concluimos que es la llamada recursiva.
Por lo tanto, procedimos a diseñar el método que a diferencia de otros métodos es algo diferente pues tiene un propósito, nos quedó de la siguiente manera:
Método – Factorial de un numero
Podemos observar que en vez de usar public void se usa public int y esto se debe a que si usásemos public void el valor no se regresaría y por lo tanto nuestra llamada recursiva no sería cumplida. Además, otra observación es el static y esto se debe a que como no estamos programando orientado a objetos empleamos static para acceso a métodos y variables de clase sin la necesidad de instanciar un objeto de dicha clase, permitiendo la inicialización de forma cómoda y durante la carga de clase.[pic 2][pic 3]
- Calcular el numero Fibonacci de un numero (n)
Siguiendo con nuestro programa procedimos a crear el método del calculo de un numero Fibonacci en donde de la misma forma que el método anterior buscamos nuestro caso base y recursividad:
Caso base
if(n == 1){ donde n es nuestro numero
return 0;
}else{
if(n == 2){
return 1;
}
Recursividad
return fibonacci(n -1) + fibonacci(n -2); en donde return n es el regreso del valor de nuestro número por la llamada de nuestro método pero con diferente valor puesto que se le resta -1 y -2, de esta manera concluimos que es la llamada recursiva.
...