Ошибка: syntax error identifier expected - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. Program UIS;
  2. Uses CRT;
  3. Type TSotr = Record
  4. Fam: String[3];
  5. Pol: Byte;
  6. God: Integer;
  7. End;
  8. Var Sotr: Array [1..14] Of TSotr;
  9. I, Kolman, KolGen,StarZhen,MaxVozrZhen,StarMan,MaxVozrMan,VozrZhen,VozrMan,SrVozrMan,SrVozrZhen: Integer;
  10. Vozr: Real;
  11. Begin
  12. Randomize;
  13. ClrScr;
  14. For I:=1 To 14 Do Begin
  15. With Sotr[I] Do
  16. Begin
  17. ReadLn(Fam);
  18. Pol:=Random(2)+1;
  19. God:=Random(32)+1965;
  20. If Pol=1 Then
  21. Begin KolGen:=KolGen+1;
  22. VozrZhen:=VozrZhen+2016-God;
  23. If VozrZhen>MaxVozrZhen Then Begin
  24. StarZhen:=FIO;
  25. MaxVozrZhen:=VozrZhen;
  26. End;
  27. If Pol=2 Then
  28. Begin KolGen:=KolGen+1;
  29. VozrMan:=VozrMan+2016-God;
  30. If VozrMan>MaxVozrMan Then Begin
  31. StarMan:=FIO;
  32. MaxVozr<Man:=VozrMan;
  33. End;
  34. End;
  35. WriteLn(' FAM',' POL',' GOD');
  36. For I:=1 To 14 Do WriteLn(Sotr[I].Fam:2,Sotr[I].Pol:5,Sotr[I].God:7);
  37. WriteLn(StarZhen, MaxVozrZhen);
  38. WriteLn(StarMan,MaxVozrMan);
  39. VozrZhen:=VozrZhen/KolGen;
  40. VozrMan:=VozrMan/KolMan;
  41. WriteLn('SrVozrMan',VozrMan:7:2);
  42. WriteLn('SrVozrZhen',VozrZhen:7:2);
  43. ReadLn;
  44. End.

Решение задачи: «Ошибка: syntax error identifier expected»

textual
Листинг программы
  1. const
  2.   SexMale=1; SexFemale=2; curYear=2016;
  3. type
  4.   TNameStr = String[31];
  5.   TEmployee = record
  6.     Name: TNameStr;
  7.     Sex: Byte;
  8.     Year: Integer;
  9.   end;
  10. var
  11.   Empl: array [1..14] of TEmployee;
  12.   MMaxAgeName,
  13.   FMaxAgeName: TNameStr;
  14.   MCnt, MSumAge, MMaxAge,
  15.   FCnt, FSumAge, FMaxAge,
  16.   i, t: Integer;
  17. begin
  18.   Randomize;
  19.   for i:=Low(Empl) to High(Empl) do with Empl[i] do begin
  20.     ReadLn(name);
  21.     Sex:=SexMale+Random(SexFemale-SexMale+1);
  22.     Year:=1965+Random(32);
  23.     case Sex of
  24.     SexMale:
  25.       begin
  26.         Inc(MCnt); t:=curYear-Year;
  27.         MSumAge:=MSumAge+t;
  28.         if MMaxAge<t then begin
  29.           MMaxAge:=t; MMaxAgeName:=Name;
  30.         end;
  31.       end;
  32.     SexFemale:
  33.       begin
  34.         Inc(FCnt); t:=curYear-Year;
  35.         FSumAge:=FSumAge+t;
  36.         if FMaxAge<t then begin
  37.           FMaxAge:=t; FMaxAgeName:=Name;
  38.         end;
  39.       end;
  40.     end;
  41.   end;
  42.   WriteLn('Name','':SizeOf(TNameStr)-4,'Sex','Year':5);
  43.   for i:=Low(Empl) to High(Empl) do with Empl[i] do
  44.     WriteLn(Name,'':SizeOf(TNameStr)-Length(Name),Sex:3,Year:5);
  45.   WriteLn('Максимальный возраст');
  46.   WriteLn('  мужчин: ',MMaxAge,' ',MMaxAgeName);
  47.   WriteLn('  женщин: ',FMaxAge,' ',FMaxAgeName);
  48.   WriteLn('Средний возраст');
  49.   WriteLn('  мужчин: ',MSumAge/MCnt:0:2);
  50.   WriteLn('  женщин: ',FSumAge/FCnt:0:2);
  51. end.

Объяснение кода листинга программы

  1. В коде определены константы SexMale и SexFemale, а также переменная curYear.
  2. Задано описание типа записи TEmployee с полями Name, Sex и Year.
  3. Объявлен массив Empl размером 14 элементов типа TEmployee.
  4. Объявлены переменные MMaxAgeName, FMaxAgeName, MCnt, MSumAge, MMaxAge, FCnt, FSumAge, FMaxAge, i, t типа Integer.
  5. В цикле for происходит заполнение данных о сотрудниках.
  6. Для каждого сотрудника считывается его имя, определяется его пол (мужской или женский) и год рождения.
  7. Рассчитывается возраст сотрудника в текущем году.
  8. В зависимости от пола сотрудника, обновляются соответствующие переменные, хранящие максимальный возраст и имя сотрудника с максимальным возрастом.
  9. Выводится информация о сотрудниках в формате: имя, пол, год рождения.
  10. Выводится информация о максимальном возрасте мужчин и женщин.
  11. Рассчитывается средний возраст мужчин и женщин.
  12. Выводится информация о среднем возрасте мужчин и женщин.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут