domingo, 21 de marzo de 2010

Proyecto #3

Hola soy Hiram
El tema que nosotros elegimos fue Maximo comun divisor

¿Que es recursion?
La recursion se puede decir que es una forma en la cual un proceso determinado expresa su solucion en una llamada a si mismo o en su propia definicion.

La recursion sirve para simplificar un problema demasiado complejo, en problemas mas pequeños del mismo tipo que el original, de esta manera se va ir reduciendo su complejidad y asi llegar a un momento en que su resolucion sea mas simple y tal vez poder resolverlo de forma no recursiva.

¿Cuando no usarlo?
Cuando una solucion sea obvia por iteracion, se debe evitar usar la recursion, ya que la solucion recursiva tiene un coste de tiempo y memoria mayor que la iterativa.

Ejemplo de algoritmo recursivo

00.INICIO
01 .int a, b, p, q, r, mcd //Declaración de variables todas enteras
02 .IMPRESION (Introduzca dos números enteros y positivos)
//Introducción de los numero enteros
03. DATOS(a, b) //Datos en este ejemplo yo puse un 32 y un 56
04 .WHILE( a <= 0 b <= 0 ) //Esta condición no se cumple porque no se introdujo
//números negativos, esta condición es solo para evitar los números negativos
05 .IMPRESION(Los números deben ser positivos, Introduzca nuevamente)
//Impresión de arriba en caso de introducir números negativos
06 .DATOS(a, b) //Datos en este ejemplo yo puse un 32 y un 56
07 .IF(a <>//La condición se cumple porque 32<56
//Por lo tanto se ejecuta el código siguiente:
08 .p = b //Estas igualdades de variables solo son para
09 .q = a //representar el orden de los números en las operaciones
//En este caso p=56 y q=32
10 .ELSE
11 .p = a //Si no se cumpliera la condición pasada(a12 .q = b //Este seria el orden que llevaría la operación
13 .r = p%q //Por lo tanto r=56%32, r=24
14 .WHILE ( r != 0 ) //Vemos que r=24 y cumple la condición(r!=0)
//Por lo y tanto se ejecuta todo el siguiente código donde se igualan las variables iniciales a otras
nuevas, para que se cumpla la secuencia de Máximo común divisor
15 .p = q //En este caso p=32
16 .q = r //Recordemos el valor de r=24, por lo tanto q=24
17.r = p%q //Ahora calculamos un nuevo valor de r
//r=32%24 r=8, y la condición de while es (r!=0) entonces se sigue ejecutando el código.
//Ahora p=q, q=r, p=24,q=8
//Seguimos con la operación r=p%q, r=24%8, r=0
//Con esto se rompe el ciclo while(r!=0) porque r=0
//Se sale del ciclo y continua con las siguientes lineas de código
18.mcd= q
//Recordando que nuestra ultima q=8, mcd =8
19.IMPRESION( a, b, mcd) //Impresión los 2 valores ingresados y su mcd.
20.FIN


El trabajo en grupo fue fundamental ya que todo se complementa con las ideas y contribuciones que se hacen y asi se facilita cualquier trabajo.
Mi contribucion al trabajo fue el tema de analisis asintotico.
Mi trabajo se compara con el de los demas en la formulacion de ideas ya que las ideas de todos lo van complementando poco a poco.

Integrantes del grupo

http://eddypre.blogspot.com/
http://algoritmosfernando.blogspot.com/
http://www.gussalas.blogspot.com/

Presentacion diapositivas

http://www.megaupload.com/?d=D2SS5NNS