type name=(Anya,Valya,Zhenya,Petya,Sasha,Tanya,Shura,Yura); gender=(man,woman); information=record pol:gender; height:140..200 end; group=array[Anya..Yura] of information;function SrRost(var Gr:group):single;var i:name; s:single; n:integer;begin s:=0; n:=0; for i:=Anya to Yura do begin s:=s+Gr[i].height; Inc(n) end; SrRost:=s/nend;function Vysokiy(var Gr:group):string;var i,j:name; h:integer;begin h:=Gr[Anya].height; j:=Anya; for i:=Valya to Yura do begin if Gr[i].height>h then begin h:=Gr[i].height; j:=i end end; Vysokiy:=j.ToStringend;function OdinRost(var Gr:group):boolean;var i,j:name; flag:boolean;begin i:=Anya; flag:=false; repeat j:=Succ(i); while (not flag) and (j<=Yura) do begin flag:=(Gr[i].height<>Gr[j].height); Inc(j) end; flag:=(Gr[i].height<>Gr[j].height); if not flag then Inc(i); until flag or (i=Yura); OdinRost:=flagend;var Grp:group; i:name; g:0..1;begin { ввод данных } for i:=Anya to Yura do begin Write(i.ToString+': укажите пол м/ж числом 0/1 '); Readln(g); if g=0 then Grp[i].pol:=man else Grp[i].pol:=woman; Write(i.ToString+': укажите рост, см (140-200) '); Readln(Grp[i].height) end; { вычисления } Writeln('Средний рост равен ',SrRost(Grp):0:1); Writeln('Наиболее высокий человек - ',Vysokiy(Grp)); If OdinRost(Grp) then Writeln('Есть минимум два человека одного роста') else Writeln('У всех в группе разный рост');end.
Тестовое решение:Anya: укажите пол м/ж числом 0/1 1Anya: укажите рост, см (140-200) 165Valya: укажите пол м/ж числом 0/1 1Valya: укажите рост, см (140-200) 170Zhenya: укажите пол м/ж числом 0/1 0Zhenya: укажите рост, см (140-200) 173Petya: укажите пол м/ж числом 0/1 0Petya: укажите рост, см (140-200) 178Sasha: укажите пол м/ж числом 0/1 0Sasha: укажите рост, см (140-200) 176Tanya: укажите пол м/ж числом 0/1 1Tanya: укажите рост, см (140-200) 170Shura: укажите пол м/ж числом 0/1 1Shura: укажите рост, см (140-200) 168Yura: укажите пол м/ж числом 0/1 0Yura: укажите рост, см (140-200) 175Средний рост равен 171.9Наиболее высокий человек - PetyaЕсть минимум два человека одного роста