Sunteți pe pagina 1din 5

UNIVERSIDAD CENTRAL DE VENEZUELA

FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN
ALGORITMOS Y ESTRUCTURAS DE DATO

PRÁCTICA DE TIPOS DE DATOS ESTRUCTURADOS


1. Indique cuales de las siguientes afirmaciones son ciertas

a) un tipo de dato se define como el conjunto de valores que puede tomar una variable.
b) El uso de tipos de datos incrementa la semántica de un programa y su legibilidad.
c) Todos los lenguajes implementan el tipo lógico de la misma manera.
d) La importancia de los registros radica en la heterogeneidad de valores almacenados.
e) Una variable del tipo enumerado no puede ser empleada como índice de un arreglo porque puede
contener valores negativos.
f) Cada uno de los casos de un registro variante es equivalente a un registro fijo.
g) El número de casos de un registro variante puede teóricamente ser infinito
h) El tipo base de un arreglo es homogéneo
i) La cardinalidad es la cantidad de valores que puede tomar un tipo de datos sin importar que sean
iguales.

2. Explique las diferencias entre:


a) Tipos elementales y tipos estructurados
b) Variables y constantes
c) Definición de tipo de dato e instancia de tipo de dato
d) Tipos homogéneos y tipos heterogéneos.
e) Nombres o identificadores y expresiones.
f) Traductor y ensamblador.
g) Descriptor y discriminaste.
h) Registro fijo y registro variante
3. Discuta la validez de las siguientes definiciones de tipo
a) Type SubRange mi_caso = ['x’ ... ‘h’];
b) Type Enum dia_laboral = (Lunes, Martes, Miércoles, Jueves, Viernes);
c) Type Enum Computadoras = ('Micro','PC','Mini'.'Mainframes','Laptop');
d) Type Array Arr of dia_laboral [Micro ... Laptop];
e) Type SubRange Mis_datos =[Martes ... Jueves];
f) Type SubRange intervalo = [10 ... 15.5];
g) Type SubRange pruebas= [-1 ... -100];
4. Calcule la cardinalidad del tipo A:
Type SubRange Sub = 1..4;
Type Array A[1...4] of Sub;
5.
Type Record Punto
Intege x,y;
Real Z;
EndRecord
Type Array Puntos [1...10] of Punto;
Puntos P;
Calcule las formulas de acceso para : P[i]; P[i],x P[i].z
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN
ALGORITMOS Y ESTRUCTURAS DE DATO

6. Escribir una instrucción typedef que defina un sinónimo de char llamado byte

7. Dada la siguiente estructura de datos:


Type Record AAA
Real Z;
Integer X;
Array Au [-1... 4] ofAYED;
EndRecord
Type Record AYED
Integer AM;
Boolean ABD;
In case of Materia do
Case IHC:
Real MM;
Case BD:
Boolean Existe;
Integer Cantidad;
Array Mío [-6...3] of Character;
Case SO:
In case of Datos do
Case True:
Character alfa;
Array SI [1...10] of Integer;
Case False:
Array SI [3...13] of Integer
EndCase
EndCase
Character Dato_Especial;
Array Info[2...8] of Integer;
End Record
Type Record Grande
Boolean Adicional;
Array X of AA[-2 ... 4];
EndRecord

Type Array JC [3 ... 10] of Grande;


JC Datos

Se desea que efectúe lo siguiente:


• Indique la cardinalidad del tipo JC
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN
ALGORITMOS Y ESTRUCTURAS DE DATO

• Calcule el costo en memoria de la variable Datos


• Para las siguientes formulas de acceso, si son correctas calcúlelas de la forma más simplificada
posible, y si son erróneas, indique el por qué:
◦ Datos[i].X[j].Au[k].SI[4];
◦ Datos[i].X[j].Au[k].SI[11];
◦ Datos[i].X[j].X;
◦ Datos[5].X[j].Au[k].SI[12] dado que Datos[5].X[j].Au[k].Materias = BD;
◦ Datos[i].X[j].Au[k].Mio[l] dado que Datos[i].X[j].Au[k].Materias = BD;

8. Defina una estructura de datos que permita almacenar eventos de un calendario. Esta no debe registrar
eventos de echas inexistentes. Calcule su cardinalidad, complejidad en espacio, y la fórmula de acceso
para conocer el evento que se encuentra registrado cierto día del año. Asuma que su calendario
funciona para un sólo año. Además se desea conocer el día de la semana en que ocurre el evento
(debe realizarlo de la forma más eficiente posible).
9. Suponga que contamos con un multiconjunto de caracteres (conjunto de caracteres que se repiten
muchas veces). Indique la forma más eficiente de:
• Insertar un nuevo caracter al multiconjunto.
• Unir dos multiconjuntos
10. Suponga que tenemos un multiconjunto de elementos de un mismo tipo, donde el tipo puede ser entero,
real, carácter o cadena de caracteres. Indique la forma más eficiente para:
a) Unir dos multiconjuntos.
b) Interceptar dos multiconjuntos.
c) Hallar el número de elementos de un multiconjunto.

11. Defina una estructura de datos que permita almacenar eficientemente matrices en forma de N (matrices
con elementos significativos en la diagonal principal y en la primera y última columna, y elementos no
significativos en el resto). Calcule su costo en memoria, explique por qué es más eficiente que la
representación típica, su cardinalidad, la fórmula de acceso para un elemento i,j y por último elabore un
algoritmo que permita sumar y multiplicar dichas matrices.
12. Elabore la pregunta anterior, pero ahora las matrices son simétricas (es decir, para todo i,j A[i][j] = A[j][i],
con i diferente de j). ¿Ocurre algún detalle en especial que deba ser tomado en cuenta? Explique su
respuesta
13. Considere las siguientes definiciones de tipo:
Type Array Arr [-5 .. 5] of Integer;
Type Array Sub [-2 .. 6] of Arr;
Sub Aux;
a) Indique el costo en memoria de la variable Aux;
b) Indique la cardinalidad del tipo Sub
c) Indique la fórmula de acceso de Aux[i];
d) Indique la fórmula de acceso de Aux[i][j];

De acuerdo a la fórmula de acceso anterior, se tiene la sensación de que el tipo Sub puede ser
trabajado como una matriz.
¿Tiene sentido esto? Justifique su respuesta
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN
ALGORITMOS Y ESTRUCTURAS DE DATO

14. Considere las siguientes definiciones de tipo:


Type Record Persona
Array Nombre [1 ... 50] of Character;
Boolean Edo_Civil;
Boolean Sexo;
SubRange Edad = 1 ... 100;
Array Dir_trab [ 1 ... 100] of Character;
In Case of Tipo_Jur
Nat:
Integer CI;
SubRange Años_Exp = 0 ... 50;
Jur:
Array RIF [1 ... 15] of Character;
Array NIT [1 ... 15] of Character;
EndCase
EndRecord
Type Array JuntaCondominio [1 ... 10] of Persona;
Type Record Edificio
Array Nombre [ 1... 50] of Character;
Integer Cant_apartamentos;
JuntaCondominio Junta;
Array Dirección [1 ... 100] of Character ;
EndRecord
Type Array Avenida [1 ... 25] of Edificio;
Avenida Aux;

• Indique la cardinalidad del tipo Avenida


• Indique el costo en memoria de la variable Aux;
• Indique las fórmulas de acceso que permiten:
◦ Saber el nombre del quinto edificio de Aux;
◦ Saber la edad de la tercera persona que conforma la Junta de Condominio de un edificio en
particular
◦ Saber el RIF de una persona que conforme la Junta de Condominio de un edificio en particular.
(Indique en este caso que debe pasar).
◦ Saber la dirección de un edificio en particular
◦ Conocer el estado civil de una persona que conforme la Junta de Condominio de un edificio en
particular.
UNIVERSIDAD CENTRAL DE VENEZUELA
FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN
ALGORITMOS Y ESTRUCTURAS DE DATO

15. Un array de N registros almacena los datos de una serie de productos. El array ya está cargado con los
datos y por cada producto se guarda su Código, su descripción y su stock. De forma paralela se
almacenan en una tabla de Nx7 elementos las cantidades vendidas de cada producto a lo largo de la
semana, de manera que en el elemento i,j de la tabla aparecerán las unidades vendidas del producto i
en el día j. Por ejemplo, del Bolígrafo Bic Azul (posición 2 del array de registros) existen en el almacén
325 unidades, y el miércoles (fila 2, columna 3 de la tabla) se vendieron 34 unidades.

Declarar de todas las estructuras de datos necesarias

16. Una empresa quiere almacenar en una tabla las ventas realizadas por sus vendedores a lo largo de la
semana. La empresa cuenta con 5 vendedores y en cada elemento i,j de la tabla se almacenará las
ventas realizadas por el vendedor i el día j (j valdrá 1 para el lunes, 2 para el martes, 3 para el l
miércoles,etc.). Los nombres de los vendedores y el total de ventas semanales se guardarán en un
array de registros
a) Realizar las declaraciones de las estructuras de datos necesarias para a aplicación.
b) Codifique un módulo que permita introducir los nombres de los vendedores y las ventas realizadas
por cada uno de ellos y almacenarlos en las estructuras de datos.
c) Codifique un módulo que obtenga el total de ventas mensuales de cada vendedor.
d) Codifique un módulo que obtenga en nombre del vendedor que más ventas ha realizado en un día
de la semana.

S-ar putea să vă placă și