Ошибка: syntax error identifier expected - Free Pascal
Формулировка задачи:
Program UIS; Uses CRT; Type TSotr = Record Fam: String[3]; Pol: Byte; God: Integer; End; Var Sotr: Array [1..14] Of TSotr; I, Kolman, KolGen,StarZhen,MaxVozrZhen,StarMan,MaxVozrMan,VozrZhen,VozrMan,SrVozrMan,SrVozrZhen: Integer; Vozr: Real; Begin Randomize; ClrScr; For I:=1 To 14 Do Begin With Sotr[I] Do Begin ReadLn(Fam); Pol:=Random(2)+1; God:=Random(32)+1965; If Pol=1 Then Begin KolGen:=KolGen+1; VozrZhen:=VozrZhen+2016-God; If VozrZhen>MaxVozrZhen Then Begin StarZhen:=FIO; MaxVozrZhen:=VozrZhen; End; If Pol=2 Then Begin KolGen:=KolGen+1; VozrMan:=VozrMan+2016-God; If VozrMan>MaxVozrMan Then Begin StarMan:=FIO; MaxVozr<Man:=VozrMan; End; End; WriteLn(' FAM',' POL',' GOD'); For I:=1 To 14 Do WriteLn(Sotr[I].Fam:2,Sotr[I].Pol:5,Sotr[I].God:7); WriteLn(StarZhen, MaxVozrZhen); WriteLn(StarMan,MaxVozrMan); VozrZhen:=VozrZhen/KolGen; VozrMan:=VozrMan/KolMan; WriteLn('SrVozrMan',VozrMan:7:2); WriteLn('SrVozrZhen',VozrZhen:7:2); ReadLn; End.
Решение задачи: «Ошибка: syntax error identifier expected»
textual
Листинг программы
const SexMale=1; SexFemale=2; curYear=2016; type TNameStr = String[31]; TEmployee = record Name: TNameStr; Sex: Byte; Year: Integer; end; var Empl: array [1..14] of TEmployee; MMaxAgeName, FMaxAgeName: TNameStr; MCnt, MSumAge, MMaxAge, FCnt, FSumAge, FMaxAge, i, t: Integer; begin Randomize; for i:=Low(Empl) to High(Empl) do with Empl[i] do begin ReadLn(name); Sex:=SexMale+Random(SexFemale-SexMale+1); Year:=1965+Random(32); case Sex of SexMale: begin Inc(MCnt); t:=curYear-Year; MSumAge:=MSumAge+t; if MMaxAge<t then begin MMaxAge:=t; MMaxAgeName:=Name; end; end; SexFemale: begin Inc(FCnt); t:=curYear-Year; FSumAge:=FSumAge+t; if FMaxAge<t then begin FMaxAge:=t; FMaxAgeName:=Name; end; end; end; end; WriteLn('Name','':SizeOf(TNameStr)-4,'Sex','Year':5); for i:=Low(Empl) to High(Empl) do with Empl[i] do WriteLn(Name,'':SizeOf(TNameStr)-Length(Name),Sex:3,Year:5); WriteLn('Максимальный возраст'); WriteLn(' мужчин: ',MMaxAge,' ',MMaxAgeName); WriteLn(' женщин: ',FMaxAge,' ',FMaxAgeName); WriteLn('Средний возраст'); WriteLn(' мужчин: ',MSumAge/MCnt:0:2); WriteLn(' женщин: ',FSumAge/FCnt:0:2); end.
Объяснение кода листинга программы
- В коде определены константы SexMale и SexFemale, а также переменная curYear.
- Задано описание типа записи TEmployee с полями Name, Sex и Year.
- Объявлен массив Empl размером 14 элементов типа TEmployee.
- Объявлены переменные MMaxAgeName, FMaxAgeName, MCnt, MSumAge, MMaxAge, FCnt, FSumAge, FMaxAge, i, t типа Integer.
- В цикле for происходит заполнение данных о сотрудниках.
- Для каждого сотрудника считывается его имя, определяется его пол (мужской или женский) и год рождения.
- Рассчитывается возраст сотрудника в текущем году.
- В зависимости от пола сотрудника, обновляются соответствующие переменные, хранящие максимальный возраст и имя сотрудника с максимальным возрастом.
- Выводится информация о сотрудниках в формате: имя, пол, год рождения.
- Выводится информация о максимальном возрасте мужчин и женщин.
- Рассчитывается средний возраст мужчин и женщин.
- Выводится информация о среднем возрасте мужчин и женщин.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д