El documento presenta nueve problemas relacionados con el manejo y procesamiento de archivos de datos. Se pide definir tipos de datos, estructuras de datos y desarrollar funciones/procedimientos para realizar operaciones como cargar, buscar, ordenar, listar y modificar datos almacenados en archivos. Los problemas involucran temas como archivos ordenados, desordenados, tablas índice, registros, búsquedas, inserciones y eliminaciones.
1. Universidad Nac. Del Comahue – Facultad de Economía y Adm. – Dep. de Informática y Estadística
ELEMENTOS DE PROGRAMACION
Trabajo Práctico Nro. 4: ARCHIVOS DE DATOS
1. De acuerdo a la siguiente declaración de tipos:
Type
TipoArchivo = file of TipoElemento; (* Integer *)
TipoPosicion = 0 .. Maxint;
Var
Archi : TipoArchivo;
Elemento : TipoElemento;
Posicion : TipoPosicion;
Escribir procedimientos o funciones para:
a) buscar un cierto valor elemento e indicar como salida la posición que ocupa dentro
del archivo. Suponga que no existen elementos repetidos y realice este procedimiento
de dis formas distintas según los criterios que siguen:
i. Suponiendo que el archivo está desordenado.
ii. Suponiendo que el archivo está ordenado en forma decreciente.
b) Localizar el elemento de mayor valor dentro del archivo e imprimirlo junto con la
posición que ocupa.
c) Imprimir los elementos tales que su valor sea igual a la posición que ocupan.
d) Generar otro archivo, ArchiAux, con los elementos pares de Archi.
e) Desarrollar un programa que permita probar cada uno de los subprogramas
desarrollados anteriiormente.
2. Se tiene un archivo de inventario de los libros de una librería.
Los datos que se mantienen para cada libro son los siguientes:
• Título
• Autor
• Código del libro
• Número de Ejemplar
• Precio de Venta
• Cantidad en existencia
a) Se pide definir los tipos de datos apropiados para mantener la información de todos
los libros.
b) Desarrollar las siguientes operaciones básicas:
i. Cargar los datos verificando que para un libro nuevo debe chequearse que no
exista otro con el mismo Código y Nro de Ejemplar. En caso de existir, mostrar
un mensaje de error acompañado con los datos ya existentes.
ii. Visualizar el archivo completo.
iii. Calcular e imprimir el valor total del inventario.
iv. Listar los libros de un autor determinado que existen en stock.
v. Listar los Código de los libros que no tienen cantidad en existencia
c) Desarrollar el programa que permita utilizar las operaciones implementadas
anteriormente.
d) Cómo debería cambiar la forma de almacenar la información para conocer cuál es el
libro más vendido?
1
2. Universidad Nac. Del Comahue – Facultad de Economía y Adm. – Dep. de Informática y Estadística
3. Se desea mantener la información relativa a los alumnos de la Universidad Nacional del
Comahue, tales:
1. Apellido y Nombres
2. Legajo
3. Domicilio
4. Teléfono
5. Código de la Carrera
6. Cantidad de Materias aprobadas
7. Feha de Ingreso
Sobre esta información, se desean realizar las siguientes operaciones:
a) Definir los tipos de dato necesarios para almacenar esta información.
b) Definir una estructura de datos apropiada para una tabla índice que permita un
acceso directo al archivo (Legajo, Posicion).
c) Ingresar la información al archivo asociando al mismo su tabla índice de acceso
directo. Tener en cuenta esta estructura para desarrollar las operaciones restantes.
d) Incorporar un nuevo alumno verificando que ya no estuviese cargado.
e) Dar de baja lógica a un alumno determinado. Modifique la definición de la
estructura del registro y de la estructura definida en a), para cumplir este punto.
Proponga una manera de recuperar el espacio generado por estas bajas lógicas.
f) Mostrar por pantalla la información sobre un alumno particular, a partir de un
número de legajo.
g) Modificar la dirección y/o teléfono de un alumno en caso de cambio de domicilio.
h) Realizar las modificaciones necesarias en los datos de un alumno en el caso de que
solicite el cambio de carrera, es decir, el código de carrera y la cantidad de materias
probadas.
i) Dado un archivo que contiene los números de legajos de alumnos que rindieron una
determinada materia, actualizar la cantidad de materias aprobadas para cada uno de
ellos. Para este punto defina las estructuras de datos necesarias y considere que tienen
ingresada la información.
j) Generar un archivo con los datos de los alumnos que hay en cada determinada
carrera. En caso de utilizar estructuras auxiliares debe definirlas.
k) Escribir un programa que permita probar las operaciones anteriormente
implementadas.
4. Dados dos archivos Archivo1 y Archivo2, que almacenan el mismo tipo de registro, en los
que los elementos figuran ordenados de mayor a menor (posiblemente con elementos
repetidos) escribir un subprograma que genere un tercer archivo, llamado Mezcla, que
contenga los elementos de Archivo1 y Archivo2 ordenados de mayor a menor, sin elementos
repetidos.
5. Una empresa de alquiler de autos almacena para cada unidad la siguiente información:
Patente (3 letras – 3 dígitos), Marca, Modelo, Lista de los últimos 10 clientes que lo
alquilaron, y de los clientes se guarda el tipo y nro de documento, apellido y nombre,
dirección completa y cantidad de kilómetros recorridos.
Además se debe contar con una estructura que permita un acceso eficiente a los datos
almacenados en el archivo anterior ya que éste se encuentra desordenado (Patente, Posición
dentro del archivo).
La empresa cuenta, cómo máximo, con 150 autos para alquilar.
a) Definir las estructuras de datos apropiadas para describir la situación planteada.
2
3. Universidad Nac. Del Comahue – Facultad de Economía y Adm. – Dep. de Informática y Estadística
b) Utilizar las definiciones anteriores para resolver las siguientes operaciones:
i. Búsqueda de un auto,
ii. Carga de un auto nuevo,
iii. Baja lógica de un auto realizando todas las verificaciones y controles
necesarios.
La información debe ordenarse por Patente de la siguiente manera: las letras en
forma creciente y, a letras iguales, los dígitos en forma creciente también.
Toda las operaciones deben se eficientes.
6. En un Centro Médico se mantiene la información en dos archivos de la siguiente manera:
Un archivo ordenado para los médicos con: código de médico, nombre y apellido, DNI y
especialidad.
Un archivo desordenado para los pacientes con: código de paciente, nombre y apellido,
dirección y teléfono, obra social y una lista de códigos de médicos con que se atiende.
a) Definir los tipos de datos adecuados para cada archivo y para una tabla índice que
permita acceder eficientemente al archivo de pacientes.
b) Suponiendo que la información de ambos archivos y de la tabla índice ya están
cargadas realizar un procedimiento para listar nombre, apellido y especialidad de
todos los médicos que atienden a un código de paciente dado.
c) En el archivo de pacientes, el borrado lógico de registros se identifica cuando los
códigos de médicos que atienden al paciente son todos nulos. Desarrollar un
procedimiento que compacte, es decir, borre físicamente todos aquellos registros que
se identifiquen con ese borrado lógico.
7. En un Museo se mantiene toda la información correspondiente a las obras y a sus
respectivos autores en dos archivos:
Un archivo ordenado por código_de_obra para todas las obras con: código de la obra,
nombre de la obra, código del autor, tipo de obra (escultura, pintura, etc.) y una breve
descrpcion de la obra.
Otro desordenado para los datos de los artistas (autores de las obras que se exponen) con:
código del artista, nombre y apellido, fecha y lugar de nacimiento, si murió se almacena la
edad y lugar de muerte y si aún vive se almacena el lugar dende reside y una lista ordenada
de los código_de_obra que expone.
a) Definir los tipos de datos adecuados para cada archivo y para una tabla índice que
permita acceder eficientemente al archivo desordenado.
b) Suponiendo que la información de ambosarchivos y de la tabla índice ya están
cargadas, realizar un procedemiento que dado un código de obra, liste por pantalla el
nombre de la obra, su descripcion, el nombre del autor y la edad del autor en caso de
estar vivo.
c) Suponiendo que la información de ambos archivos y la tabla índice ya están
cargados, realizar un procedimiento o función que dado un nombre de artista y un tipo
de obra (escultura, pintura, ect.), obtenga la cantidad de obras de ese tipo que tiene
expuestas.
8. Un negocio de venta de regalos desea administrar la información de sus productos de la
siguiente manera:
En un archivo desordenado mantiene la información de todos los productos que vende:
código del producto, descripción, nombre de la fábrica del producto y rubro al que pertenece.
En otro archivo independiente ordenado mantiene el stock, con la siguiente información:
código del producto y cantidad disponible.
a) Diseñar una estructura en memoria que permita un acceso directo y eficiente al
archivo de productos (el que está desordenado). Definir todos los tipos de datos
3
4. Universidad Nac. Del Comahue – Facultad de Economía y Adm. – Dep. de Informática y Estadística
necesarios que describan el enunciado teniendo en cuenta la posibilidad de efectuar
bajas lógicas.
b) Realice un procedimiento para cargar la información descripta.
c) Realice un procedimiento que permita dar de alta a un nuevo producto.
d) Realice un procedimiento que permita dar de baja lógica a un producto.
e) Realice un procedimiento que permita convertir todas las bajas lógicas en bajas
físicas.
f) Desarrollar un algoritmo eficiente, aprovechando la estructura y los tipos definidos en
a), que genere un listado de todos los productos y nombre de fábrica cuyo stock sea
cero.
9. Se mantiene un sistema para una agencia de viajes. La agencia cuenta con la información
sobre los distintos tours que ofrece: código, lugar, fecha de partida y retorno, los datos del
hotel designado para el alojamiento(nombre, teléfono, dirección de correo electrónico,
domicilio), cupo de personas y costo.
Puede haber más de un tours que se dirija al mismo lugar.
Así mismo, mantiene información de los pasajeros, sus datos personales(nombre, apellido,
DNI, teléfono, dirección de correo electrónico, domicilio), país de procedencia, tours
contratados a la empresa y lo que ha pagado del mismo (puede ser total o un adelanto). Si
una persona contrata más de un viaje aparecerá en el archivo de pasajeros tantas veces como
viajes haya contratado.
El archivo con la información de los viajes se mantiene ordenado por código del tour.
El archivo de pasajeros se mantiene ordenado por código de tour y DNI del pasajero.
a) Definir todos los tipos necesarios para representar la información de acuerdo al
enunciado.
b) Realizar un procedimiento que genere un listado con todos los tours (junto con sus
pasajeros) que se realizarán entre dos fechas dadas, con el siguiente formato:
Tour Nro:............. Fecha de partida: .....................
Destino:...............
Apellido Nombre DNI Teléfono E-amil País de Procedencia
........... ............... ..... ........... .................. ........................
........... ............... ..... ........... .................. ........................
Cantidad de Pasajeros del Tour:..................
Tour Nro:............. Fecha de partida: .....................
Destino:...............
Apellido Nombre DNI Teléfono E-amil País de Procedencia
........... ............... ..... ........... .................. ........................
........... ............... ..... ........... .................. ........................
Cantidad de Pasajeros del Tour:..................
c) Generar un archivo con aquellos pasajeros que estén en condiciones de viajar, es
decir, los pasajeros que han abonado el costo total del tour, indicando apellido y Dni
de pasajeros y el tour correspondiente.
4
5. Universidad Nac. Del Comahue – Facultad de Economía y Adm. – Dep. de Informática y Estadística
d) Realice una definición de tipos para optimizar las estructuras planteadas en el
enunciado. Justifique su elección.
5
6. Universidad Nac. Del Comahue – Facultad de Economía y Adm. – Dep. de Informática y Estadística
d) Realice una definición de tipos para optimizar las estructuras planteadas en el
enunciado. Justifique su elección.
5