Advertisement
Silvia_vcp

practica_0

Feb 23rd, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. program practica_0;
  2. USES
  3. crt;
  4. CONST
  5. FIN=4;
  6. INI=1;
  7. sueldo_max=2500;
  8. TYPE
  9. TEmpleado= RECORD
  10. nombre:string;
  11. edad:integer;
  12. sueldo:real;
  13. end;
  14. TPEmpleado=^TEmpleado;
  15. TAPEmpleado=array[1..FIN] of TPEmpleado;
  16. VAR
  17. TAPE:TAPEmpleado;
  18. PROCEDURE rellenar_TAPE (VAR empleado:TAPEmpleado);
  19. VAR
  20. contador:integer;
  21. i,j:integer;
  22. BEGIN
  23. contador:=1;
  24. REPEAT
  25. new(empleado[contador]);
  26. writeln('Introduzca el nombre del empleado ',contador);
  27. readln(empleado[contador]^.nombre);
  28. writeln('Introduzca la edad del empleado ',contador);
  29. readln(empleado[contador]^.edad);
  30. writeln('Introduzca el sueldo del empleado ', contador);
  31. readln(empleado[contador]^.sueldo);
  32. writeln('Desea incribir a un empleado?. Pulse 0 para NO y 1 para SI');
  33. readln(j);
  34. IF j=1 THEN
  35. contador:=contador+1;
  36. IF contador=FIN+1 THEN
  37. writeln('Ya no se pueden rellenar los datos de mas empleados');
  38. UNTIL ((contador=FIN+1) OR (j=0));
  39. END;
  40.  
  41. PROCEDURE Mostrar_TAPE (empleado:TAPEmpleado);
  42. VAR
  43. i,j:integer;
  44. BEGIN
  45. FOR i:= INI TO FIN DO
  46. IF empleado[i]<>NIL THEN BEGIN
  47. writeln('Datos del empleado ',i);
  48. writeln('Nombre: ',empleado[i]^.nombre);
  49. writeln('Edad: ',empleado[i]^.edad);
  50. writeln('Sueldo: ',empleado[i]^.sueldo);
  51. end;
  52. end;
  53. PROCEDURE ordenar_TAPE (VAR empleado:TAPEmpleado);
  54. VAR
  55. aux:TPEmpleado;
  56. i,j:integer;
  57. BEGIN
  58. writeln('Ahora se mostraran los empleados ordenados por sueldo, de menor a mayor');
  59. FOR i:= INI TO (FIN-1) DO
  60. FOR j:= INI TO (FIN-i) DO
  61. IF empleado[j+1]<>NIL THEN
  62. IF empleado[j]^.sueldo>empleado[j+1]^.sueldo THEN BEGIN
  63. aux:= empleado[j+1];
  64. empleado[j+1]:=empleado[j];
  65. empleado[j]:=aux;
  66. end;
  67. END;
  68. PROCEDURE Eliminar_TAPE (VAR empleado:TAPEmpleado);
  69. VAR
  70. i:Integer;
  71. BEGIN
  72. FOR i:=INI TO FIN DO
  73. IF empleado[i]<>NIL THEN
  74. IF empleado[i]^.sueldo>sueldo_max THEN BEGIN
  75. dispose(empleado[i]);
  76. empleado[i]:=NIL;
  77. end;
  78. END;
  79. PROCEDURE Cierre_TAPE (VAR empleado:TAPEmpleado);
  80. VAR
  81. i:integer;
  82. BEGIN
  83. FOR i:= INI TO FIN DO
  84. IF empleado[i]<>NIL THEN BEGIN
  85. dispose(empleado[i]);
  86. empleado[i]:=NIL;
  87. END;
  88. END;
  89. BEGIN
  90. rellenar_TAPE(TAPE);
  91. mostrar_TAPE(TAPE);
  92. readln;
  93. clrscr;
  94. ordenar_TAPE(TAPE);
  95. mostrar_TApe(TAPE);
  96. readln;
  97. clrscr;
  98. eliminar_TAPE(TAPE);
  99. mostrar_TAPE(TAPE);
  100. Cierre_TAPE(TAPE);
  101. readln;
  102. END.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement