fork download
  1. Program kontrrabota;
  2. uses crt;
  3. type lich_dan=record
  4. fam:string[15];
  5. imja:string[15];
  6. otch:string[15];
  7. godrog: integer;
  8. sem_pol:byte;
  9. kol_det:byte;
  10. end;
  11. type rab_dan=record
  12. nom_otd:byte;
  13. dolgnost:string[15];
  14. date_nach_rab:string[15];
  15. stag:byte;
  16. zar_plata:real;
  17. secret:byte;
  18. end;
  19. type anketa=record
  20. LD: lich_dan;
  21. RD: rab_dan;
  22. End;
  23. var
  24. sotrudn:array[1..20] of anketa;
  25. i, j :integer;
  26. base:file of anketa;
  27. procedure stag_rabot;
  28. var
  29. stroka1:string;
  30. st_rab,st:integer;
  31. begin
  32. stroka1:=copy(sotrudn[i].RD.date_nach_rab,7,4);
  33. val(stroka1,st);
  34. st_rab:=2012-st;
  35. sotrudn[i].RD.stag:=st_rab;
  36. end;
  37. procedure zar_pl;
  38. var dol_sotr:string[10];
  39. begin
  40. dol_sotr:=sotrudn[i].RD.dolgnost;
  41. if dol_sotr='инженер' then
  42. sotrudn[i].RD.zar_plata:=20000*(1+0.05*sotrudn[i].RD.stag);
  43. if dol_sotr='начальник' then
  44. sotrudn[i].RD.zar_plata:=40000*(1+0.05*sotrudn[i].RD.stag);
  45. if dol_sotr='ассистент' then
  46. sotrudn[i].RD.zar_plata:=10000*(1+0.05*sotrudn[i].RD.stag);
  47. end;
  48. begin
  49. clrscr;
  50. writeln('Введите данные о сотрудниках.');
  51. writeln;
  52. for i:=1 to 20 do begin
  53. with sotrudn[i] do
  54. begin
  55. Writeln('Введите фамилию сотрудника.');
  56. readln(LD.fam);
  57. Writeln('Введите имя сотрудника.');
  58. readln(LD.imja);
  59. Writeln('Введите отчество сотрудника.');
  60. readln(LD.otch);
  61. Writeln('Введите год рождения сотрудника.');
  62. readln(LD.godrog);
  63. Writeln('Укажите семейное положение сотрудника:');
  64. Writeln('1-если сотрудник женат/замужем, 2-если сотрудник холост/не замужем.');
  65. readln(LD.sem_pol);
  66. Writeln('Укажите количество детей у сотрудника.'); readln(LD.kol_det);
  67. Writeln('Введите номер отдела, в котором работает сотрудник.'); readln(RD.nom_otd);
  68. Writeln('Укажите должность сотрудника');
  69. readln(RD.dolgnost);
  70. Writeln('Укажите дату поступления сотрудника на службув формате "дд.мм.гг.');
  71. readln(RD.date_nach_rab);
  72. Writeln('Укажите уровень доступа сотрудника к секретной информации.');
  73. readln(RD.secret);
  74. stag_rabot;
  75. writeln ('Стаж работы сотрудника ',RD.stag,' лет.');
  76. zar_pl;
  77. writeln ('Заработная плата сотрудника-',RD.zar_plata:5:0);
  78. end;
  79. assign(base, 'D:\base_of_data.dat');
  80. rewrite(base);
  81. for j:=1 to 20 do
  82. write(base, sotrudn[j]);
  83. close (base);
  84. end;
  85. end.
Runtime error #stdin #stdout 0s 320KB
stdin
Standard input is empty
stdout
Введите данные о сотрудниках.

Введите фамилию сотрудника.
Введите имя сотрудника.
Введите отчество сотрудника.
Введите год рождения сотрудника.
Укажите семейное положение сотрудника:
1-если сотрудник женат/замужем, 2-если сотруд
ник холост/не замужем.
Укажите количество детей у сотрудника.
Введите номер отдела, в котором работает со�
�рудник.
Укажите должность сотрудника
Укажите дату поступления сотрудника на слу�
�був формате "дд.мм.гг.
Укажите уровень доступа сотрудника к секре�
�ной информации.
Стаж работы сотрудника 220 лет.
Заработная плата сотрудника-    0
Runtime error 5 at $080486D5
  $080486D5
  $0806B793