Taller de Lenguajes I – 2015 PROGR. UNIVERSITARIO / LICENCIATURA EN INFORMATICA Dictado: Ing. Juan Manuel Conti
TRABAJO PRACTICO Nro 3 Reservas dinámicas - Arreglos de apuntadores - Lista simples Problema 01 Un arreglo de bytes (unsigned char), debe poder almacenar una matriz cúbica de enteros de 3 dimensiones, con cada dimensión DIM=5, la cual será asignada con valores aleatorios en el rango 100, 999 con la siguiente característica: la diagonal principal (en rojo) sólo contendrá valores cuya suma de dígitos sea igual a 15 (para el resto no hay restricciones). Esta matriz será mostrada por pantalla. Un vector de apuntadores a enteros denominado Diag[ ] almacenará las direcciones de cada elemento de la diagonal principal y será utilizado en un paso final para mostrar a través de él la diagonal principal. NOTA: En todo momento deberá trabajar con la fórmula para direccionar cada elemento de la matriz dada en clase.
byte * M
k DIM DIM
j
DIM
i Diag[DIM ]
int *
int *
Trabajo Práctico Nro 3
Pág 1/2
Taller de Lenguajes I – 2015 PROGR. UNIVERSITARIO / LICENCIATURA EN INFORMATICA Dictado: Ing. Juan Manuel Conti Problema 02 En la siguiente estructura de datos: TMat
Mat[ ]
int * F F
int *
Dim1
Dim2 enteros
F
int *
TNodo Dim1
int *
Dim2
pMax
int *
TNodo Prox
Dim1
Dim2
pMax
TNodo * Start
en la parte inferior aparece una lista simple enlazada donde cada nodo (de tipo TNodo) consta de 4 miembros: Dim1 y Dim2 (enteros), que tomarán los siguientes valores aleatorios: Dim1 entre 5 y 10 Dim2 entre 4 y 12 pMax, que es un apuntador que señalizará la dirección del máximo valor almacenado en cada matriz dinámica. El total de matrices dinámicas es igual a la cantidad de nodos de la lista enlazada, o sea 3 (tres). En cambio Mat[ ] es un arreglo estático de apuntadores de tipo TMat, donde TMat es una estructura simple con un sólo miembro: F que es un puntero a int. La secuencia lógica para resolver este problema es creando cada nodo de la lista, dar valores aleatorios a Dim1 y Dim2, y entonces a través de ellos generar cada matriz dinámica. Obviamente como Dim1 y Dim2 son aleatorios, cada matriz tendrá diferentes dimensiones. Mostrar por pantalla c/matriz y su máximo correspondiente.
Trabajo Práctico Nro 3
Pág 2/2
Prox