Ошибка: 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 происходит заполнение данных о сотрудниках.
- Для каждого сотрудника считывается его имя, определяется его пол (мужской или женский) и год рождения.
- Рассчитывается возраст сотрудника в текущем году.
- В зависимости от пола сотрудника, обновляются соответствующие переменные, хранящие максимальный возраст и имя сотрудника с максимальным возрастом.
- Выводится информация о сотрудниках в формате: имя, пол, год рождения.
- Выводится информация о максимальном возрасте мужчин и женщин.
- Рассчитывается средний возраст мужчин и женщин.
- Выводится информация о среднем возрасте мужчин и женщин.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д