.
Módulo II
Estos ejercicios fueron cedidos gentilmente por la profesora Adriana Adámoli.
Ej. MII-5
Dados los siguientes dibujos que corresponden a distintos tipos de registros realice su declaración en Pascal utilizando la sección Type, y especifique la nomenclatura para acceder al registro y cada uno de sus campos.
Ej. MII-8
Dado el archivo INSCRIP.DAT desarrolle un programa que solicitando por teclado un código de materia permita seleccionar todos los registros que se anotaron para rendirla y los grabe en otro archivo (MATFINALES.DAT), con el mismo diseño.
INSCRIP.dat
- Nro. de legajo (8 dígitos)
- Código de materia (6 dígitos)
- Día del examen (1..31)
- Mes del examen (1..12)
- Año del examen (4 dígitos)
- Nombre-Apellido (25caract)
Ej. MII-10
Dado el archivo INSCRIP.DAT que contiene todas las inscripciones del día, y otro con el mismo diseño que contiene las inscripciones anteriores (FINALES.DAT), desarrolle un programa que agregue al archivo de inscripciones anteriores el contenido del archivo del día. Al final del proceso emita un listado del archivo de los registros agregados al archivo.
Ej. MII-11
Dado el archivo INSCRIP.DAT desarrolle un programa que genere un archivo ordenado por número de legajo (cada registro debe tener los campos legajo y apellido y nombre) para todos los alumnos que se inscribieron una o más veces. Cada legajo debe ocupar una posición única y predecible en el archivo. El intervalo de los legajos es 80001 a 110000, pueden no presentarse todos los legajos.
Ej. MII-12
Dado el archivo generado en el ejercicio MII-11, desarrolle un programa que elimine, si los hubiese, los registros que no contengan datos válidos de la siguiente manera:
- Genere un nuevo archivo, elimine el archivo original y renombre al archivo actual
- Compacte en el mismo archivo
Dado un conjunto (<100) de valores enteros de los cuales el último es cero y no debe procesarse:
- informe el valor mínimo, su posición dentro del conjunto, si el mínimo no es único, informar todas las posiciones donde se encuentre.
- genere e informe un vector B de 2 elementos, donde el primer elemento sea el valor máximo del vector, y el segundo elemento el valor siguiente.
- informe la productoria de los elementos impares que ocupen posición par.
- Informe el conjunto normalizado, donde cada elemento del conjunto se divide por el mayor valor absoluto.
Ej. MII-16
Dado un número N (<25), y dos vectores A y B de N elementos que contenga valores reales
- genere e informe un tercer vector C intercalando los valores de posición impar de A y los valores de posición par de B.
- genere e informe un tercer vector D donde cada elemento contenga un valor cero si los elementos de una misma posición de A y B son iguales, o un valor uno si no lo son.
Ej. MII-17
Dado un número N (<30), y un vector VEC de N elementos que contenga valores enteros invierta el contenido del vector y lo informe:
- utilizando otro vector y dos subíndices
- utilizando otro vector y un solo subíndice
- utilizando el mismo vector y dos subíndices
- utilizando el mismo vector y un solo subíndice
Ej. MII-18
Dado un número N (<20), y dos vectores A y B de N elementos que contenga valores entre 0..9 que representan números naturales muy largos
- genere e informe un tercer vector SUMA de N+1 elementos que sea el resultante de la suma de los dos números.
- genere e informe un tercer vector RESTA de N elementos que sea el resultante de la resta de los dos números.
Ej. MII-19
Dado un número N (<20), y un vector REFER de N elementos que contenga valores enteros positivos, en orden creciente, y un valor X desarrolle un algoritmo que determine e informe:
- Con cual número de elemento del vector coincide, o
- Entre cuales dos elementos se encuentra, o
- Si es menor que el primero o mayor que el último
Ej. MII-20
Convertir el Ej. MII-19 utilizando la función BusquedaBinariaEnVector
Ej. MII-21
Dado un conjunto de valores naturales (<20) de los cuales el último es un cero, y no debe procesarse, genere e informe un vector que contenga los factoriales de los valores ingresados. Utilice la función desarrollada en el Ej. MI-36.
Ej. MII-22
Dado un número N (<50), y un vector VEC de N valores enteros positivos ordene el contenido del vector en orden ascendente, y lo informe:
- en orden ascendente
- en orden descendente
Ej. MII-23
Convertir el Ej. MII-22 utilizando el procedimiento Burbujeo
Ej. MII-25
Dado un número N (<=50) y un conjunto de Nombres y Fechas de nacimientos (AAAAMMDD), informar el conjunto:
- ordenado por nombre
- ordenado por fecha y nombre
- ordenado por nombre y fecha
Ej. MII-26
Una empresa de aviación realiza 500 vuelos semanales a distintos puntos del país y requiere desarrollar un programa para la venta de pasajes.
Para ello dispone de un archivo ‘Vuelos.dat’, con un registro por cada uno de los 500 vuelos que realiza, sin ningún orden, con el siguiente diseño de registro:
a.1) código de vuelo (6 caracteres) a.2) cantidad de pasajes disponibles ( 3 dígitos)
También se dispone de otro archivo ‘Compradores.dat’, con los potenciales compradores y con el siguiente diseño de registro:
- código de vuelo
- cantidad de pasajes solicitados (3 dígitos)
- DNI del solicitante (8 dígitos)
- apellido y nombre del solicitante (25 caracteres)
1) Para los solicitantes a los cuales se les venden pasajes, emitir el siguiente listado:
2) Al final del proceso emitir el siguiente listado ordenado por código de vuelo:
Nota: Se le vende al solicitante si la cantidad de pasajes que solicita está disponible, en caso contrario se computa como pasajes no vendidos. Desarrolle el ejercicio utilizando la siguiente estructura de datos:
Ej. MII-27
Una empresa que distribuye mercadería hacia distintas localidades del interior dispone de los siguientes archivos: un archivo ‘Destinos.dat’, con información de la distancia a cada uno de los destinos y con el siguiente diseño de registro:
Ej. MII-28
Genere e informe una matriz MUL[10x10] con las tablas de multiplicar.
Ej. MII-29
Dado un valor N (<50), y una matriz MAT[NxN] que contiene valores enteros. Se pide:
Ej. MII-31
Dado un valor N y otro R (ambos <50), MAT[NxR] que contiene valores enteros positivos. Informe la ubicación del primer cero de cada fila o un cartel indicando si no lo hay.
Nota: Utilice una función que reciba como parámetro una matriz de NxR, la cantidad de elementos de la columna, y un número de fila, retorne el número de columna donde encontró el primer cero o un número negativo si no lo hay en la fila.
Ej. MII-32
Dado un valor N (<30), y una matriz MAT[NxN] que contiene valores reales. Se pide:
Ej. MII-33
Un negocio de ropa, vende sus artículos en distintos talles. Para realizar la facturación dispone de los siguientes archivos: un archivo ‘Articulos.dat’, con los precios de cada artículo y talle que vende, con el siguiente diseño de registro:
Desarrollar un programa que:
Ej. MII-34
Se dispone un archivo binario de inscripción de alumnos a exámenes finales MAESTROFINALES.DAT y otro con las inscripciones del día de hoy DIAFINALES.DAT, ambos ordenados ascendente por código de materia y con el siguiente diseño:
Ej. MII-35
Resolver el Ej. MII-34 donde ambos archivos estén ordenados por código de materia y apellidonombre.
Ej. MII-36
Resolver el Ej. MII-34 donde el archivo de inscripciones del día DIAFINALES.DAT posee como máximo 500 registros, y:
Ej. MII-37
Resolver el Ej. MII-35 donde el archivo de inscripciones del día DIAFINALES.DAT posee como máximo 500 registros, y:
Ej. MII-38
Se realiza un censo en las distintas escuelas del país. La información se encuentra en el archivo binario DATOSESCUELAS.DAT con un registro por cada escuela censada, con el siguiente diseño:
Nota: utilice el siguiente juego de datos para probar el algoritmo.
Ej. MII-39
Dado un archivo binario ‘ACTASFINALES.dat’ que contiene las actas de los exámenes finales de las distintas materias, ordenado por libro y folio y con el siguiente diseño
Ej. MII-40
Dado el archivo ‘ALUMNOS.dat’ con los datos personales de alumnos ordenado por legajo, con el siguiente diseño:
Se pide desarrollar todos los pasos necesarios para realizar un programa que genere un archivo actualizado ‘ALUMACTU.dat’ con el mismo diseño.
Ej. MII-41
Resolver el ejercicio Ej. MII-40 donde el archivo de novedades no posee orden alguno, y la cantidad máxima de registros es 100. Realice un algoritmo por cada una de las siguientes restricciones de memoria.
Restricciones:
Ej. MII-42
Dado el archivo ‘PRODUCTOS.dat’ con los datos de los productos que vende un mayorista, ordenado por código de producto y con el siguiente diseño:
Se pide desarrollar todos los pasos necesarios para realizar un programa que actualice el archivo ‘Productos.dat’ sobre sí mismo.
NOTA: Los códigos de los productos a dar de alta siempre tendrán un valor superior a los que se encuentren ya grabados en Productos.dat, y no son más de 20. Restricciones memoria para arrays 100 bytes
Ej. MII-43
Una biblioteca maneja la siguiente información:
a) un archivo de Libros, ordenado por código de libro y con el siguiente diseño:
1) Emitir un listado con los libros que tuvieron como mínimo 20 consultas en cada mes del semestre, con el siguiente diseño, ordenado por código:
2) Grabar un archivo ordenado alfabéticamente por editorial con el siguiente diseño:
Ej. MII-44
Una empresa de construcción posee 10 depósitos donde almacena el stock de sus materiales, según una cierta capacidad. Cada vez que realiza compras de materiales o debe enviar estos a las distintas obras en construcción debe almacenar o retirar materiales de los distintos depósitos. Y para ello cuenta con los siguientes archivos:
a) un archivo de direcciones de los 10 depósitos, sin ningún orden y con el siguiente diseño:
c) un archivo de compras realizadas por la empresa con orden natural y con el siguiente diseño
1) Por cada orden de compra distribuir la cantidad comprada entre los distintos depósitos partiendo siempre desde el depósito número 1 y hasta completar la capacidad. Y emitir por cada compra que se pueda almacenar parcial o totalmente el siguiente listado:
2) Por cada pedido pendiente retirar la cantidad solicitada entre los distintos depósitos partiendo siempre desde el depósito número 1 y hasta agotar stock. Y emitir por cada pedido pendiente que se pueda satisfacer parcial o totalmente el siguiente listado:
3) Actualizar archivos de la siguiente manera:
.
Una empresa que distribuye mercadería hacia distintas localidades del interior dispone de los siguientes archivos: un archivo ‘Destinos.dat’, con información de la distancia a cada uno de los destinos y con el siguiente diseño de registro:
- número de destino (3 dígitos)
- distancia en kilómetros ( single)
- patente del camión (6 caracteres, no son más de 200 camiones)
- número de destino
- número de chofer (1..150)
- Cantidad de viajes realizados a cada destino
- Número de chofer con menor cantidad de km recorridos
- Patente de los camiones que viajaron al destino 116 sin repeticiones de las mismas.
Ej. MII-28
Genere e informe una matriz MUL[10x10] con las tablas de multiplicar.
Ej. MII-29
Dado un valor N (<50), y una matriz MAT[NxN] que contiene valores enteros. Se pide:
- Leerla por fila
- Informarla por columna
- Informar la sumatoria de sus elementos y el valor promedio
- Informar el máximo elemento y su ubicación (fila y columna)
- Informar el mínimo de cada fila y el máximo de cada columna
- Informar cuantos elementos positivos hay en la diagonal principal y cuantos negativos en la diagonal secundaria
Ej. MII-31
Dado un valor N y otro R (ambos <50), MAT[NxR] que contiene valores enteros positivos. Informe la ubicación del primer cero de cada fila o un cartel indicando si no lo hay.
Nota: Utilice una función que reciba como parámetro una matriz de NxR, la cantidad de elementos de la columna, y un número de fila, retorne el número de columna donde encontró el primer cero o un número negativo si no lo hay en la fila.
Ej. MII-32
Dado un valor N (<30), y una matriz MAT[NxN] que contiene valores reales. Se pide:
- Generar e informar un vector VECSUMCOL donde cada componente sea la suma de la columna homóloga
- Generar e informar un vector de registro donde el primer campo de cada componente contenga el valor máximo de cada fila y el segundo campo la posición del máximo dentro de la fila
Ej. MII-33
Un negocio de ropa, vende sus artículos en distintos talles. Para realizar la facturación dispone de los siguientes archivos: un archivo ‘Articulos.dat’, con los precios de cada artículo y talle que vende, con el siguiente diseño de registro:
- código de articulo (1..100)
- talle (1..5)
- precio (real)
Desarrollar un programa que:
- informe el precio de la venta, considerando un descuento del 10% si las unidades vendidas son superiores a tres más el 21% del IVA.
- al final del proceso emita el siguiente listado, ordenado por artículo y talle ascendente:
Ej. MII-34
Se dispone un archivo binario de inscripción de alumnos a exámenes finales MAESTROFINALES.DAT y otro con las inscripciones del día de hoy DIAFINALES.DAT, ambos ordenados ascendente por código de materia y con el siguiente diseño:
- Nro de legajo (8 dígitos)
- Código de materia (6 dígitos)
- ApellidoNombre(25caract)
Ej. MII-35
Resolver el Ej. MII-34 donde ambos archivos estén ordenados por código de materia y apellidonombre.
Ej. MII-36
Resolver el Ej. MII-34 donde el archivo de inscripciones del día DIAFINALES.DAT posee como máximo 500 registros, y:
- no posea ningún ordenamiento
- ordenado por legajo
Ej. MII-37
Resolver el Ej. MII-35 donde el archivo de inscripciones del día DIAFINALES.DAT posee como máximo 500 registros, y:
- no posea ningún ordenamiento
- ordenado por legajo y código de materia
Ej. MII-38
Se realiza un censo en las distintas escuelas del país. La información se encuentra en el archivo binario DATOSESCUELAS.DAT con un registro por cada escuela censada, con el siguiente diseño:
- Nombre de provincia (20 caracteres)
- Nombre de la Ciudad (20 caracteres)
- Nro. de escuela (3 dígitos)
- Cantidad de alumnos (4 dígitos)
Nota: utilice el siguiente juego de datos para probar el algoritmo.
Ej. MII-39
Dado un archivo binario ‘ACTASFINALES.dat’ que contiene las actas de los exámenes finales de las distintas materias, ordenado por libro y folio y con el siguiente diseño
- Libro (6 dígitos)
- Folio ( 1..999)
- Fecha (aaaammdd)
- Código materia (6 dígitos)
- Legajo (10 dígitos)
- Apellido y nombre (20 caracteres)
- Nota (1..10, 0 indica ausente)
- Libro (6 dígitos)
- Folio ( 1..999)
- Total alumnos inscriptos (1..20)
- Total alumnos ausentes (1..20)
- Total alumnos aprobados (1..20)
- Total alumnos desaprobados (1..20)
Ej. MII-40
Dado el archivo ‘ALUMNOS.dat’ con los datos personales de alumnos ordenado por legajo, con el siguiente diseño:
- Legajo (8 dígitos)
- Apellido y nombre ( 30 caracteres)
- Domicilio (20 caracteres)
- Código postal (4 dígitos)
- Teléfono (10 caracteres)
- Año de ingreso (4 dígitos)
Se pide desarrollar todos los pasos necesarios para realizar un programa que genere un archivo actualizado ‘ALUMACTU.dat’ con el mismo diseño.
Ej. MII-41
Resolver el ejercicio Ej. MII-40 donde el archivo de novedades no posee orden alguno, y la cantidad máxima de registros es 100. Realice un algoritmo por cada una de las siguientes restricciones de memoria.
Restricciones:
- memoria para arrays 7200 bytes
- memoria para arrays 900 bytes
Ej. MII-42
Dado el archivo ‘PRODUCTOS.dat’ con los datos de los productos que vende un mayorista, ordenado por código de producto y con el siguiente diseño:
- Código de producto (8 caracteres)
- Descripción del producto ( 30 caracteres)
- Cantidad en Stock (4 dígitos)
- Precio de venta (real)
- Estado del registro (‘A’=activo / ‘I’= inactivo )
Se pide desarrollar todos los pasos necesarios para realizar un programa que actualice el archivo ‘Productos.dat’ sobre sí mismo.
NOTA: Los códigos de los productos a dar de alta siempre tendrán un valor superior a los que se encuentren ya grabados en Productos.dat, y no son más de 20. Restricciones memoria para arrays 100 bytes
Ej. MII-43
Una biblioteca maneja la siguiente información:
a) un archivo de Libros, ordenado por código de libro y con el siguiente diseño:
- código del libro (6dígitos)
- título del libro (30 caract)
- cantidad de ejemplares (2 dígitos)
- ubicación (3 caract)
- código de la editorial (1..200)
- autor (25 caract)
- nombre de la editorial (25 caracteres)
- código de la editorial (1..200)
- código del libro
- fecha de consulta (aaaammdd)
1) Emitir un listado con los libros que tuvieron como mínimo 20 consultas en cada mes del semestre, con el siguiente diseño, ordenado por código:
2) Grabar un archivo ordenado alfabéticamente por editorial con el siguiente diseño:
- nombre de la editorial (25 caracteres)
- porcentaje de libros que fueron consultados en el semestre (single)
Ej. MII-44
Una empresa de construcción posee 10 depósitos donde almacena el stock de sus materiales, según una cierta capacidad. Cada vez que realiza compras de materiales o debe enviar estos a las distintas obras en construcción debe almacenar o retirar materiales de los distintos depósitos. Y para ello cuenta con los siguientes archivos:
a) un archivo de direcciones de los 10 depósitos, sin ningún orden y con el siguiente diseño:
- número de depósito (1..10)
- dirección del depósito (30 caracteres)
- código de material (6 dígitos)
- número de depósito de almacenamiento
- cantidad en stock en el depósito (word)
- capacidad de almacenamiento en el depósito (word)
c) un archivo de compras realizadas por la empresa con orden natural y con el siguiente diseño
- número de orden de compra (longint)
- proveedor (20 caract)
- código de material
- cantidad comprada (word)
- d.1 número de pedido (longint)
- d.2 dirección de la obra (20 caracteres)
- d.3 código de material
- d.4 cantidad solicitada (word)
1) Por cada orden de compra distribuir la cantidad comprada entre los distintos depósitos partiendo siempre desde el depósito número 1 y hasta completar la capacidad. Y emitir por cada compra que se pueda almacenar parcial o totalmente el siguiente listado:
2) Por cada pedido pendiente retirar la cantidad solicitada entre los distintos depósitos partiendo siempre desde el depósito número 1 y hasta agotar stock. Y emitir por cada pedido pendiente que se pueda satisfacer parcial o totalmente el siguiente listado:
3) Actualizar archivos de la siguiente manera:
- archivo b) actualizar stock a partir de las compras almacenadas o los pedidos satisfechos, regrabando los registros una sola vez en toda la ejecución del programa
- archivo c) actualizar cantidad comprada con un valor 0 si fue almacenado en su totalidad o con la cantidad que no logró almacenarse en ningún depósito..
- archivo d) actualizar cantidad solicitada con un valor 0 si fue satisfecho en su totalidad o con la nueva cantidad pendiente.
.