Sei sulla pagina 1di 5

Algoritmos y

Programación

Prof. Miguel A. Fernández


Archivos
Codificar un programa para poder grabar, consultar y actualizar los datos del personal
administrativo de una empresa, contemplando los siguientes módulos:

Módulo 1.
Ingresar los siguientes datos de cada empleado:
NUL - Número de legajo
APN - Apellido y Nombre
REM - Remuneración mensual
CAT - Categoría (rango de 1 a 22)
Estos datos grabarlos en un archivo secuencial (EMPLEADOS).
Los datos ingresan ordenados por número de legajo.

Módulo 2.
Consultar los datos del archivo. El operador digitará el número de legajo del empleado
y se debe mostrar todos los datos del empleado grabado en el archivo.

Módulo 3.
Actualizar la remuneración mensual por incremento en los haberes.
El incremento consiste en un porcentaje distinto para cada categoría.
Estos porcentajes deben ingresarse una sola vez al inicio del módulo.
Al finalizar el proceso imprimir:
Total de remuneraciones mensuales de todos los empleados antes y después del incremento.
Cantidad total de empleados discriminados por categorías.
Archivos
Begin
Program Empleados Assign (Archivo, "Archivo.dat“)
Type BAN := False
Rarchivos = record MENU
NUL : Integer; Mientras OPC <> 0
APN : String [50]; Según OPC
REM : Real; 1 : INGRESO
CAT : Integer 2 : CONSULTO
end; 3 : ACTUALIZO
Archivos : file of Rarchivos; Other : Mostrar «Error»
Rvector = record FinSegún
PCAT : Real; MENU
TCAT : Integer FinMientras
end; FIN
Vector = array [1..22] of Rvector;
Procedimiento MENU
Var Begin
Archivo : Archivos; Mostrar "Seleccione una Opción"
Reg : Rarchivos; Mostrar " 0 = Finaliza el proceso"
Vec : Vector; " 1 = Ingresa Datos"
BAN : Boolean; " 2 = Consulta Datos"
OPC : Integer: " 3 = Actualiza Datos"
Ingresar OPC
FIN
FinProcedimiento MENU
Archivos Procedimiento CONSULTO
Var
NULE : Integer;
Procedimiento INGRESO LEY : Boolean;
Begin Begin
Abrir <Archivo> Ingresar NULE
Ingresar Reg.NUL Mientras NULE <> 0
Mientras Reg.NUL <> 0 Abrir <Archivo>
Ingresar Reg.APN, Reg.REM Leer <Archivo>
Reg.CAT LEY := False
Grabar (Archivo, Reg) Mientras NoFin <Archivo> and LEY = False
Ingresar Reg.NUL Si Reg.NUL = NULE
FinMientras Mostrar Reg.APN, Reg.REM, Reg.CAT
Cerrar <Archivo> LEY := True
FIN Sino
FinProcedimiento INGRESO Leer <Archivo>
FinSi
FinMientras
Si LEY = False
Mostrar “No existe Legajo en Archivo”
FinSi
Cerrar <Archivo>
Ingresar NULE
FinMientras
FIN
FinProcedimiento CONSULTO
Begin
Archivos Si BAN = False
Para i = 1, 22, 1
Ingresar Vec(i).PCAT
Vec(i).TCAT := 0
Procedimiento ACTUALIZO
FinPara
Var
TAN, TDE := 0
AUM : Real;
Abrir <Archivo>
TAN, TDE : Real;
Leer <Archivo>
i : Integer; Mientras NoFin <Archivo>
AUM := Reg.REM * Vec(Reg.CAT).PCAT / 100
TAN := TAN + Reg.REM
Reg.REM := Reg.REM + AUM
TDE := TDE + Reg.REM
Regrabar (Archivo, Reg)
Vec(Reg.CAT).TCAT := Vec(Reg.CAT).TCAT + 1
Leer <Archivo>
FinMientras
Imprimir “Totales :” TAN, TDE
Para i = 1, 22, 1
Imprimir i, Vec(i).TCAT
FinPara
Cerrar <Archivo>
BAN := True
Sino
Mostrar "El proceso ya fue ejecutado"
FinSi
FIN
FinProcedimiento ACTUALIZO

Potrebbero piacerti anche