INSTITUTO TECNOLÓGICO DE COSTA RICA Tarea Corta # 4 Punteros

Anuncio
INSTITUTO TECNOLÓGICO DE COSTA RICA
Escuela de Computación
Análisis y Diseño de Algoritmos
I Semestre 2014
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. Explique cómo funcionan los punteros en la memoria dinámica.
4. Como hace un programador para que un puntero no este asociado a
ninguna dirección?
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 mama 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.
e.
f.
g.
h.
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
Un puntero “Ptr3”, va a direccionar el valor de la resta del contenido de
“Ptr1” y “Ptr2”.
Un puntero “Ptr4”, va a direccionar a una V3 tipo bool
Si el valor que apunta Ptr3 es positivo Ptr4 se le asignara TRUE, si no se
le asignara False
Al final, se deberá mostrar el valor de Ptr3 únicamente si es positivo, en
caso contrario mandar a pantalla el siguiente mensaje “Valor negativo”.
Descargar