martes, 13 de diciembre de 2011
Examen(Arrays)
-Realizar un programa gestionado por menú que le permita al usuario elegir :
S Salir del programa.
I Insertar edad para cada empleado desde el teclado.
M Mostrar la edad del empleado más joven de la empresa.
Debe definirse y utilizarse una estructura de datos en la que puedan almacenarse el
nombre, edad y salario de los cinco empleados de una empresa. En la declaración la
variable de dicho tipo debe inicializarse con los siguientes valores por defecto para
todos los empleados: nombrePEPE; edad 18; salario600.55
-Realizar un programa gestionado por menú que le permita al usuario elegir:
S Salir del programa.
I Insertar salarios para cada empleado desde el teclado.
M Mostrar el salario medio de la empresa.
Debe definirse y utilizarse una estructura de datos en la que puedan almacenarse el
nombre, dni y salario de los cinco empleados de una empresa. En la declaración la
variable de dicho tipo debe inicializarse con los siguientes valores por defecto para
todos los empleados: nombrePEPE; dni 33333333; salario600.55
PROGRAM ejercicio5(input,output);
(*Programa que contenga un registro de 5 empleados, que registre nombre,edad y salario*)
CONST
empleados = 5;
TYPE
Registro = RECORD
nombre:string(15);
edad:integer;
salario:real;
dni:integer;
END VALUE[nombre:'PEPE';edad:18;salario:600.55;dni:33333333];
TAficha = ARRAY[1..empleados] OF Registro;
VAR
fichas:TAficha;
a:integer;
(****************************************************************************************)
PROCEDURE edad;
VAR
I:integer;
BEGIN
FOR I:=1 TO empleados DO
BEGIN
write('Introduzca el nombre del empleado:');
readln(fichas[I].nombre);
write('Introduzca la edad del empleado:');
readln(fichas[I].edad);
END;
END;
(****************************************************************************************)
PROCEDURE joven;
VAR
I,nuevo:integer;
BEGIN
nuevo:=1;
FOR I:=1 TO empleados DO
BEGIN
IF (fichas[I].edad < fichas[nuevo].edad) THEN nuevo:=I;
END;
writeln('El empleado mas joven es ',fichas[nuevo].nombre);
END;
(****************************************************************************************)
PROCEDURE dinero;
VAR
I:integer;
media,acumulador:real;
BEGIN
acumulador:=0;
FOR I:=1 TO empleados DO
BEGIN
acumulador:=acumulador+fichas[I].salario;
END;
media:=acumulador/empleados;
writeln('El salario medio de los empleados de la empresa es: ',media:2:2);
END;
(****************************************************************************************)
PROCEDURE intro;
VAR
I:integer;
BEGIN
FOR I:=1 TO empleados DO
BEGIN
write('Introduzca el nombre del empleado:');
readln(fichas[I].nombre);
write('Introduzca el salario del empleado:');
readln(fichas[I].salario);
END;
END;
(*****************************************************************************************)
PROCEDURE salir;
BEGIN
END;
(*****************************************************************************************)
PROCEDURE menu;
VAR
a:char;
BEGIN
REPEAT
BEGIN
writeln('[S] Salir del programa');
writeln('[I] Insertar edad para cada empleado desde el teclado');
writeln('[J] Insertar el salario de cada empleado por teclado');
writeln('[M] Mostrar la edad del empleado más joven de la empresa');
writeln('[N] Mostrar el salario medio de la empresa');
readln(a);
CASE a OF
'S','s' :salir;
'I','i' :edad;
'M','m' :joven;
'J','j' :intro;
'N','n' :dinero;
OTHERWISE writeln('Error');
END;
END;
UNTIL((a = 'S')OR(a = 's'));
END;
(****************************************************************************************)
PROCEDURE escribir;
VAR
I:integer;
BEGIN
FOR I:=1 TO empleados DO
writeln(fichas[I].nombre);
END;
(****************************************************************************************)
BEGIN
menu;
escribir;
read(a);
END.
Ejemplo de ejecucion
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario