ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
RECURSIVIDAD C++
1. Instituto Tecnológico Superior de Felipe Carrillo Puerto
INGENIERÍA EN SISTEMAS COMPUTACIONALES
ESTRUCTURA DE DATOS
Informe técnico de la unidad 2
Recursividad
DOCENTE
C.Dr. Niels Henryk Aranda Cuevas
ALUMNO
Sergio Jesús Sabido Díaz
Felipe Carrillo Puerto, Q.Roo. a 2 de octubre de 2014
2. RECURSIVIDAD
La recursividad, es un concepto bastante importante y bien básico de la programación.
Sin embargo es bastante difícil de asimilar al principio. Se supone que es algo que se va
entendiendo con práctica y tiempo
"es una función que se llama así misma" el objetivo de esta unidad fue comprender
que es la recursividad y posteriormente programarla.
Es importante mencionar que cuando existe recursividad me debo olvidar de los ciclos,
¿Por qué? Por que la recursividad trabaja con secuencias .
Para ejemplo de que es la recursividad, seria codificar un programa que te genere el
factorial de un número y la serie Fibonacci.
3. EJEMPLO
Obtener el factorial de un número, programa echo en C++
#include <iostream>
using namespace std;
int factorial(int n);
int main(int argc, char *argv[]) {
int p;
cout << "este programa sirve para sacar el factorial de un numero
entero"<<endl<<endl;
cout <<"Por favor ingrese su numero"<<endl;
cin >> p;
cout <<"el resultado es: "<<factorial(p);
return 0;
}
int factorial(int n){
if(n==0){
return(1);
}
else {
return(n*factorial(n-1));
}
}
4. EJEMPLO 2
Serie Fibonacci, programa echo en C++
#include <iostream>
using namespace std;
int fibonacci(int a);
int main(int argc, char *argv[]) {
int p;
cout <<"Este programa funciona como la serie fibonacci"<<endl<<endl;
cout <<"por favor ingrese un numero"<<endl<<endl;
cin >> p;
cout <<"El resultado de la serie es: "<<endl<<fibonacci(p);
return 0;
}
int fibonacci(int a){
if((a==1)||(a==2)){
return (1);
}
else{
return(fibonacci(a-1)+fibonacci(a-2));
}
}
5. CONCLUSIÓN
La primera llamada al subprograma se plantea sobre un problema de tamaño u orden N, cada nueva ejecución recurrente del
mismo se planteará sobre problemas, de igual naturaleza que el original, pero de un tamaño menor que N. De esta forma, al ir
reduciendo progresivamente la complejidad del problema que resolver, llegará un momento en que su resolución sea más o
menos trivial (o, al menos, suficientemente manejable como para resolverlo de forma no recursiva). En esa situación diremos
que estamos ante un caso base de la recursividad.
Las claves para construir un subprograma recurrente son:
Cada llamada recurrente se debería definir sobre un problema de menor complejidad (algo más fácil de resolver).
Ha de existir al menos un caso base para evitar que la recurrencia sea infinita.
Es frecuente que los algoritmos recurrentes sean más ineficientes en tiempo que los iterativos aunque suelen ser mucho más
breves en espacio.
En esta unidad se pudo observar que lo anterior es importante por que permite que un programador ver que existen
distintas maneras de programar secuencias y no solamente con ciclos, la recursividad puede simplificar código y hacer más
estética y legible nuestro programa, es importante mencionar que los programas anteriores son claros ejemplos de cómo se
utiliza la recursividad en programación siendo así una herramienta importante a la hora de generar softwares con problemáticas
similares, llevamos a cabo el razonamiento lógico para poder entender el problema y posteriormente codificarlo, explicamos
cada uno de ellos,