Beruflich Dokumente
Kultur Dokumente
Propsito de la Clase
Funciones Recursivas
Mdulos de programa que se retroalimentan con valores generadas por s mismas. Hay que tener algunas cosas en cuenta en las funciones recursivas: - Toda funcin recursiva debe tener algn punto de finalizacin. - La funcin debe conducir a ese punto de finalizacin.
Ejemplo:
Funcin Recursiva de Factorial. Funcin Recursiva de Multiplicacion. Funcin Recursiva de Potencia. Funcin Recursiva de Fibonacci Funcin Recursiva de Mximo Comn Divisor - Funcin Recursiva de Torres de Hanoi
factorial (3) factorial (2) factorial (1) factorial (0) int factorial(int n) if(3==0) if(2==0) if(1==0) if(0==0) { if (n == 0) 1 return 1; else return 3*factorial(2) return 2*factorial(1) return 1*factorial(0) 6 return n*factorial(n-1); } 3* 2* 1*
return 6 void main( ) { int num, F; do{ cout<<Ingrese numero para factorial; 3 cin>>num; while (3<0) }while(num<0); factorial F= (3) F = factorial(num); system(pause); }
3==1 2==1 if(n == 1) cout<<org<<<<des; else { hanoi(2,A,C,B) hanoi(n-1,org,des,aux); cout<<org<<<<des; hanoi(n-1,aux,org,des); hanoi(2,B,A,C) }
void hanoi(int n,char org,char aux,char des) A { if(n == 1) cout<<org<<<<des; else { hanoi(n-1,org,des,aux); cout<<org<<<<des; (n,org,aux,des) hanoi(n-1,aux,org,des); (1,A,B,C) } } (n,org,aux,des) A -> B
A -> C
(2,A,C,B)
(n,org,aux,des)
(n,org,aux,des)
(1,C,A,B) A -> C
(n,org,aux,des) (n,org,aux,des)
C -> B
(3,A,B,C)
(1,B,C,A)
B -> C
(n,org,aux,des)
B -> A
(2,B,A,C)
(1,A,B,C)
A -> C
Tarea Acadmica
Presentar impreso.
MDULO
TIPOS
ES
Segmento de Programa
Independiente y reutilizable
a) Funcin:
b) Procedimiento:
Recursividad:
Invocacin as mismo.
Propsito de la Clase
Aplica los mdulos de programa como Procedimientos, Funciones, Recursividad a travs de libreras de programacin en el laboratorio de cmputo.
OBSERVACIN:
En la unidad de la pc que est trabajando, contar con dos carpetas: a) Programas: donde guarda todos los proyectos y programas fuente que est desarrollando. b) Libreras: donde guarda todos los archivos de las libreras que va a reutilizar en los diferentes proyectos.
2. En Categoras seleccionar Visual C++ y en Templates seleccionar Header File (.h), y luego seleccionar el botn OPEN.
3. Codificar los mdulos para este archivo, en este cao ejemplo, para leer datos de diferentes tipos.
NOTA: Puede cerrar la venta del archivo creado, no afecta a los proyectos que pueda crear.
2. En Project Types seleccionar Visual C++ , y en Templates seleccionar Win32 Console Application, y darle un nombre al proyecto: CalcularHerencia y Guardar el proyecto en la carpeta Programas. Seleccionar el Botn ACEPTAR y luego el botn OK.
4. Aparece una ventana de Bienvenida, y seleccionar el botn NEXT para configurar el proyecto.
5. Configurarlo como Proyecto Vaco seleccionando la opcin Empty Project y luego seleccionar el botn FINISH.
6. En el Solution Explorer aparece el proyecto que se acaba de crear, entonces ahora se puede crear un archivo fuente (con extensin cpp): clic derecho en Source File, seleccionar Add, y luego New Item.
7. En Categories seleccionar Code, y en Tempaltes seleccioanr C++ File (.cpp) y darle un nombre al archivo fuente: RepartoHerencia, y luego seleccioanr el botn Add.
NOTA: No modificar la Location del archivo, por ser parte del proyecto.
9. Observe que el programa est usando los mdulos de lectura Leedatod() y Leedatoe(), pero que se encuentran en la librera LecturaDatos.h, por lo que es necesario invocar el uso de dicha en la librera en la cabecera del programa fuente.
4. Desplegar la lista y seleccionar Edit, se activar el botn para seleccionar la ruta donde se encuentra el archivo .h (librera LecturaDatos.h)
5. Al seleccionar el botn aparece la venta para localizar el archivo LecturaDatos.h (se encuentra en la carpeta Libreras.) y seleccionar el botn ACEPTAR.
Luego seleccionar el botn OK, y de esta manera queda habilitado para ser usado en el proyecto.
2. Puede visualizar este ventana de dilogo para compilar el programa seleccionando el botn YES.
NOTA: Si no desea visualizar este mensaje puede seleccionar la opcin: Do not show this dialog again.