Análisis para construir el algoritmo del Factorial y otras Series

3
 Análisis para construir el algoritmo del Factorial  (y otras series)  Al comienzo puede parecer un poco confuso, pero todo se va aclarando a medida que avanzan leyendo. El factorial es la multiplicación de todos los números enteros desde 1 hasta el número  (incluido), es decir:  O de manera recurrente (no se enreden con esta, solo por curiosidad): ) ) Expresado de manera simplificada como la productoria:  Recordemos que la productoria viene siendo:    Que es la manera que nos interesa, porque ya sabemos una manera de recorrer números desde un valor inicial hasta un  final: Pseudocódigo Visual C++ Entero i  k Mq(i  n) . . . Instrucciones . . . i  i + 1 Fin_Mq int i = k ; while(i <= n){ . . . Instrucciones . . . i++; } Lo anterior no es más que la estructura que hemos usado constantemente en clase para repetir ciertas instrucciones  veces, si nuestro  , que es el caso del factorial. Ahora, siguiendo el

description

En este pequeño manual se explican como construir la solucion para cualquier serie, ideal para clases de Algoritmia y Programacion fundamental

Transcript of Análisis para construir el algoritmo del Factorial y otras Series

5/9/2018 An lisis para construir el algoritmo del Factorial y otras Series - slidepdf.com

http://slidepdf.com/reader/full/analisis-para-construir-el-algoritmo-del-factorial-y-otra

Análisis para construir el algoritmo del “Factorial” 

(y otras series)

 Al comienzo puede parecer un poco confuso, pero todo se va aclarando a medida que avanzan leyendo.

El factorial es la multiplicación de todos los números enteros desde 1 hasta el número (incluido),

es decir:

 

O de manera recurrente (no se enreden con esta, solo por curiosidad):

) ) 

Expresado de manera simplificada como la productoria:

 

Recordemos que la productoria viene siendo:

 

Que es la manera que nos interesa, porque ya sabemos una manera de recorrer números desde

un valor inicial hasta un final:

Pseudocódigo Visual C++

Entero i ← kMq(i ≤ n)

.

.

.Instrucciones

..

.i ← i + 1

Fin_Mq

int i = k ;while(i <= n){

.

.

.Instrucciones

..

.i++;

}

Lo anterior no es más que la estructura que hemos usado constantemente en clase para repetir

ciertas instrucciones veces, si nuestro , que es el caso del factorial. Ahora, siguiendo el

5/9/2018 An lisis para construir el algoritmo del Factorial y otras Series - slidepdf.com

http://slidepdf.com/reader/full/analisis-para-construir-el-algoritmo-del-factorial-y-otra

ejemplo de otros ejercicios hechos en clase, las sumatorias y las productorias, van acumulando los

resultados de cada una de sus iteraciones, la diferencia está en que la sumatoria las va

acumulando sumando sus iteraciones mientras que la productoria utiliza la multiplicación. Puede

parecer obvio pero es clave para la resolución del problema, sobretodo la palabra acumular . La

diferencia también recae en que el acumulador de la sumatoria empieza en 0, mientras que la

productoria comienza en 1, es decir cada uno con su elemento neutro. Agregamos lo último ahora

a nuestro código:

Pseudocódigo Visual C++

Entero i ← 1, acum ← 1Mq(i ≤ n)

.

.

.Instrucciones...i ← i + 1

Fin_Mq

int i = 1, acum = 1;while(i <= n){

.

.

.Instrucciones...i++;

}

Hasta ahora tenemos el contador, y el acumulador que nos va a ir guardando el resultado en cada

iteración, ahora si vemos la definición de la productoria nos damos cuenta que tiene una función

 que depende de , la cual puede ser constante, pero para el factorial es el mismo contador , es

decir: El factorial multiplica todos los hasta . Sabiendo esto ya tenemos la

operación principal de nuestro algoritmo:

Pseudocódigo Visual C++

Entero i ← 1, acum ← 1Mq(i ≤ n)

acum ← acum x ii ← i + 1

Fin_Mq

int i = 1, acum = 1;while(i <= n){

acum = acum * i;i++;

}

Y listo! Ya tenemos el valor de guardado en la variable acum. Ahora solo resta mostrarle al

usuario o hacer otra cosa que queramos con ese valor:

Pseudocódigo Visual C++Inicio

|Entero i ← 1, acum ← 1, n|Escriba(“Digita el valor de n: “)|Lea n|Mq(i ≤ n)||acum ← acum x i||i ← i + 1|Fin_Mq|Escriba(“El factorial| de“,n,”es:“,acum)Fin 

void main(){

int i = 1, acum = 1, n;cout<<“Digita el valor de n: “;cin>>n;while(i <= n){

acum = acum * i;i++;

}cout<<“El factorial de

“<<n<<”es: “<<acum;

}

5/9/2018 An lisis para construir el algoritmo del Factorial y otras Series - slidepdf.com

http://slidepdf.com/reader/full/analisis-para-construir-el-algoritmo-del-factorial-y-otra

 

Dicho esto repasemos los pasos que seguimos:

1)  Identificamos el tipo de serie (Sumatoria o Productoria).

2)  Hallamos el valor inicial y final, y su incremento.

3)  Dependiendo del tipo de series, inicializamos el valor ( 0 ó 1)

4)  Hallamos la función  que rige la serie

5)  Esta la operamos (sumar o multiplicar) con nuestro acumulador

6)  El resultado lo guardamos dentro del mismo acumulador.

Ya con estos simples pasos pueden resolver casi cualquier (sino todas) las series que se les

presenten.

Andrés A. Pérez L.