INSTITUTO TECNOLÓGICO DE COSTA RICA Escuela de Computación Análisis y Diseño de Algoritmos I Semestre 2015 Prof. Víctor Garro Tarea Corta # 4 Punteros Objetivos. 1. Introducir los punteros en el lenguaje C++ 2. Analizar como los punteros nos permiten utilizar memoria dinámica 3. Comprender el funcionamiento de los punteros y su manejo. Teóricos(10%) 1. Explique una ventaja de la memoria dinámica sobre la estatica. 2. Ejemplifique como se declara un puntero. 3. Ejemplificar con un diagrama cómo funcionan los punteros en la memoria dinámica. Práctica Laboratorio(90%) 1) Realice un programa que genere 5 punteros (2 int, 2 char, 1 struct me), posteriormente llénelos con variables, y al final genere un arreglo que contenga la dirección de memoria donde esta el puntero, y la dirección de memoria del contenido (*Por medio del puntero). Para constatar los resultados, muestre la información como se muestra a continuación (30%) 2. Desarrolle una estructura con punteros a otras estructuras y cree con estas un historial genealógico básico (hasta el nivel de padres, esto es usuario->hermanos (max 3 hermanos incluyendo el usuario)>padres). La idea del programa es que el usuario pueda ingresar los datos de su árbol genealógico y luego el programa permita listar el árbol genealógico en pantalla según la perspectiva de cada persona en el arbol, ejemplo: Si se elije ver desde Usuario aparecería algo como: Usuario, tiene 2 hermanos: Fulano y Sutano y sus padres son: Papá y Mamá. Papá está casado con mamá y tiene 3 hijos: Fulano, Sutano y Usuario. (Todo referenciado a través de punteros). Nota: Cada persona es una estructura que debe contener nombre, y la referencia a los otros punteros. (30%) NOTA: De acuerdo con el progreso del programa, usted debe definir el tipo de variable al que debe apuntar cada uno de los punteros. 3. Realice un programa que cumpla con los siguientes requisitos: (30%) a. b. c. d. Utilice únicamente memoria dinámica. Un puntero “Ptr1”, el cual va a direccionar una V1 tipo entero. Un puntero “Ptr2”, el cual va a direccionar a una V2 tipo float. Mediante el uso de punteros el usuario debe poder asignarle valores definidos a V1 y V2 e. Un puntero “Ptr3”, va a direccionar el valor de la resta del contenido de “Ptr1” y “Ptr2”. f. Un puntero “Ptr4”, va a direccionar a una V3 tipo bool y que si V3 es True entonces se crea una variable anónima tipo entera a través de un “Ptr5”donde usted ingresará su número de carnet y sino termina el programa con un mensaje de salida. Además debe borrar todas las variables anónimas mediante el uso de punteros.