Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program practica_0;
- USES
- crt;
- CONST
- FIN=4;
- INI=1;
- sueldo_max=2500;
- TYPE
- TEmpleado= RECORD
- nombre:string;
- edad:integer;
- sueldo:real;
- end;
- TPEmpleado=^TEmpleado;
- TAPEmpleado=array[1..FIN] of TPEmpleado;
- VAR
- TAPE:TAPEmpleado;
- PROCEDURE rellenar_TAPE (VAR empleado:TAPEmpleado);
- VAR
- contador:integer;
- i,j:integer;
- BEGIN
- contador:=1;
- REPEAT
- new(empleado[contador]);
- writeln('Introduzca el nombre del empleado ',contador);
- readln(empleado[contador]^.nombre);
- writeln('Introduzca la edad del empleado ',contador);
- readln(empleado[contador]^.edad);
- writeln('Introduzca el sueldo del empleado ', contador);
- readln(empleado[contador]^.sueldo);
- writeln('Desea incribir a un empleado?. Pulse 0 para NO y 1 para SI');
- readln(j);
- IF j=1 THEN
- contador:=contador+1;
- IF contador=FIN+1 THEN
- writeln('Ya no se pueden rellenar los datos de mas empleados');
- UNTIL ((contador=FIN+1) OR (j=0));
- END;
- PROCEDURE Mostrar_TAPE (empleado:TAPEmpleado);
- VAR
- i,j:integer;
- BEGIN
- FOR i:= INI TO FIN DO
- IF empleado[i]<>NIL THEN BEGIN
- writeln('Datos del empleado ',i);
- writeln('Nombre: ',empleado[i]^.nombre);
- writeln('Edad: ',empleado[i]^.edad);
- writeln('Sueldo: ',empleado[i]^.sueldo);
- end;
- end;
- PROCEDURE ordenar_TAPE (VAR empleado:TAPEmpleado);
- VAR
- aux:TPEmpleado;
- i,j:integer;
- BEGIN
- writeln('Ahora se mostraran los empleados ordenados por sueldo, de menor a mayor');
- FOR i:= INI TO (FIN-1) DO
- FOR j:= INI TO (FIN-i) DO
- IF empleado[j+1]<>NIL THEN
- IF empleado[j]^.sueldo>empleado[j+1]^.sueldo THEN BEGIN
- aux:= empleado[j+1];
- empleado[j+1]:=empleado[j];
- empleado[j]:=aux;
- end;
- END;
- PROCEDURE Eliminar_TAPE (VAR empleado:TAPEmpleado);
- VAR
- i:Integer;
- BEGIN
- FOR i:=INI TO FIN DO
- IF empleado[i]<>NIL THEN
- IF empleado[i]^.sueldo>sueldo_max THEN BEGIN
- dispose(empleado[i]);
- empleado[i]:=NIL;
- end;
- END;
- PROCEDURE Cierre_TAPE (VAR empleado:TAPEmpleado);
- VAR
- i:integer;
- BEGIN
- FOR i:= INI TO FIN DO
- IF empleado[i]<>NIL THEN BEGIN
- dispose(empleado[i]);
- empleado[i]:=NIL;
- END;
- END;
- BEGIN
- rellenar_TAPE(TAPE);
- mostrar_TAPE(TAPE);
- readln;
- clrscr;
- ordenar_TAPE(TAPE);
- mostrar_TApe(TAPE);
- readln;
- clrscr;
- eliminar_TAPE(TAPE);
- mostrar_TAPE(TAPE);
- Cierre_TAPE(TAPE);
- readln;
- END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement