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: nombrePEPE; edad 18; salario600.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: nombrePEPE; dni 33333333; salario600.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




No hay comentarios:

Publicar un comentario

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | GreenGeeks Review