Documente Academic
Documente Profesional
Documente Cultură
FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN
ALGORITMOS Y ESTRUCTURAS DE DATO
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.
6. Escribir una instrucción typedef que defina un sinónimo de char llamado byte
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
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.
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.