You are on page 1of 2

Ejercicios de algortmica - Integracin de temas

por Alicia Beatriz Paur


Este documento adapta ejercitacin de la Gua de Trabajos Prcticos de la asignatura Algortmica y Programacin I,
carrera: Licenciatura en Sistemas y Analista Programador Universitario-Facultad de Ingeniera (UNPSJB, sede Trelew)
con la finalidad de generar objetos de aprendizaje (OA) de menor granularidad y mayor modularidad tendientes a
aumentar su reusabilidad en diferentes contextos.
La gua de trabajos prcticos de Algortmica y Programacin I ha sido desarrollada por los docentes de esa ctedra
entre los que se incluye la autora de esta adaptacin.
El propsito de este OA es integrar temas propios de algortmica y programacin como son: estructuras de datos:
registro, acceso a campos en registros, arreglos, recorrido de arreglos, archivos, listados.

Registros - arreglos
1- Se ha censado una poblacin registrando informacin sobre sexo (masculino, femenino), estado civil (soltero,
casado, viudo, separado) y edad (0..120 aos), en un archivo censo. Con los datos del archivo censo, haz un
algoritmo que permita consultar rpidamente la cantidad de personas de:
a) Un sexo determinado.
b) Un estado civil determinado.
c) Un rango de edad determinado (por dcadas).
d) Sexo y estado civil determinado.
2- Se necesita mantener la siguiente informacin relativa a los alumnos de la Facultad:
apellido y nombre, libreta universitaria, domicilio, telfono, cdigo de carrera, cantidad de materias
aprobadas y fecha de ingreso.
Sobre esta informacin se desean realizar las siguientes operaciones:
a) Mostrar en pantalla la informacin sobre un alumno en particular, a partir de su nmero de libreta.
b) Modificar la direccin y/o telfono de un alumno, dado su nmero de libreta.
c) Realizar las modificaciones necesarias en los datos de un alumno en caso de que solicite un cambio de
Carrera, es decir, el cdigo de carrera y cantidad de materias aprobadas.
d) Dado un archivo que contiene los nmeros de libreta de alumnos que rindieron una determinada materia,
actualizar la cantidad de materias aprobadas por cada uno de ellos.
e) Incorporar un nuevo alumno.
f) Dar de baja a un alumno.
Elige y define la estructura de datos que a tu criterio resulta conveniente para dicha aplicacin e
implementa mediante procedimientos o funciones, segn corresponda, cada una de las operaciones
mencionadas.

Archivos
1- Dado el archivo agenda.dat cuya estructura fue definida en el prctico anterior, desarrolla un algoritmo que permita:
a) Generar un ndice por nombre: deber levantar en una lista los nombres y la posicin del registro en el archivo.
La lista debe quedar ordenada por nombre en forma ascendente (esta lista funcionar como un ndice de
agenda).
b) Imprimir la agenda por orden alfabtico, recorriendo la lista ndice.
c) Solicitar un nombre para buscarlo en la lista ndice y mostrar todos los datos de la persona.
2- La facultad desea un programa que le permita realizar ciertos procesos sobre los datos diarios de inscripcin de los
alumnos a los cursos que dicta. Para ello cuenta con 2 archivos con la siguiente informacin:
MATERIAS.DAT: ordenado por Cdigo de Materia (comienza en 1 y son ns. correlativos).
Cdigo de Materia, Nombre de Materia, Cantidad de Horas
ALUMNOS.DAT: ordenado por Nro. de Legajo del Alumno (comienza en 1 y son ns. correlativos).
Nro. de Legajo del Alumno, Nombre y Apellido, DNI
Desarrolla un programa que tenga opciones para:
a) Realizar la inscripcin de los alumnos en las materias: se deber solicitar el cdigo de materia y nmero de
legajo de alumno, validando que correspondan a materias y alumnos existentes y que no est ya inscripto ese
alumno en esa materia. Optimizar el proceso para el supuesto que un alumno se inscribe en varias materias de
una vez.

b) Confeccionar el listado de inscriptos en cada materia: el nombre de la materia y su cdigo figura en el


encabezado. Los alumnos son listados de a uno por regln, en orden alfabtico, con la informacin de su
nombre y apellido, nmero de legajo y DNI. Para cada materia debe figurar al final, la cantidad de alumnos
inscriptos.
Las inscripciones realizadas deben quedar almacenadas en el archivo inscripciones.dat con los siguientes
campos Cdigo de Materia, Nro. de Legajo del Alumno, ordenado por Cdigo de Materia, Nro. de Legajo del
Alumno.
3- Construye una estructura de datos para manejar un horario, dado en la siguiente forma: horas (entre 0 y 23),
minutos (entre 0 y 59) y segundos (entre 0 y 59). Utilizando esta estructura y considerando que debe ser guardarla
en un archivo, escribe subprogramas para:
a) Dado un horario, pasarlo a segundos.
b) Dados dos horarios, calcular su diferencia en horas, minutos y segundos.
4- Escribe un subalgoritmo que permita insertar un registro reg en un archivo ordenado por el campo clave.
5- Escribe un subalgoritmo que devuelva la posicin en que se encuentra un registro de clave val en un archivo
ordenado por el campo clave. Debes aplicar el algoritmo de bsqueda binaria.
6- Se tiene informacin referente a los empleados de un laboratorio en un archivo con la siguiente estructura: nmero
de empleado, nombre y apellido, categora, bonificacin por antigedad, sueldo bsico. Si la categora es tcnico o
profesional tendr adems los siguientes datos: Colegio o Universidad a la que asisti, ttulo obtenido, ao. Si la
categora es administrativo: titulo secundario. Escribe un algoritmo que:
a) Ingrese los datos (el nmero de empleado se lo pide al usuario y es considerado el campo clave (archivo
ordenado por ese campo) finaliza cuando ingresa un 0).
b) Muestre un men de opciones que permita:
i) Calcular y mostrar el sueldo real promedio de una determinada categora.
ii) Mostrar el nombre y apellido de los empleados con un sueldo dado.

Listadoscorte de control
1- Un banco cuenta con un archivo con la siguiente informacin:
Nro. Sucursal, Nro. Departamento, Nro. Sector, Nro. Empleado, Fecha de Ingreso, Categora, Sueldo
Ordenado por: Nro. Sucursal, Nro. Departamento, Nro. Sector, Nro. Empleado.
Realiza un listado que muestre la cantidad de empleados de cada sector, calcule el promedio de sueldo de cada
departamento, por cada sucursal: muestre la cantidad de empleados y el promedio de sueldos, y termine
totalizando la cantidad de empleados del banco. Ejemplo: