uses crt;
const nmax=30;
type
uchenik=record
fam:string[20];
pol:char;
rst:byte;
ves:byte;
end;
var z:array[1..nmax] of uchenik;
n,i,j,mx,imx,kd,km:byte;
r,v:integer;
begin
clrscr;
repeat
write('Количество учеников до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Введите данные об учениках:');
for i:=1 to n do
begin
writeln('Ученик ',i);
with z[i] do
begin
write(' фамилия: ');readln(fam);
repeat
write(' пол d/m: ');readln(pol);
until pol in ['d','m'];
repeat
write(' рост (от 100 до 200): ');readln(rst);
until rst in [100..200];
repeat
write(' вес (от 40 до 80): ');readln(ves);
until ves in [40..80];
end;
end;
mx:=0;imx:=1;
km:=0;kd:=0;
r:=0;v:=0;
for i:=1 to n do
begin
if z[i].pol='m' then
begin
km:=km+1;
r:=r+z[i].rst;
if (z[i].rst>mx)then
begin
mx:=z[i].rst;
imx:=i;
end;
end
else
begin
kd:=kd+1;
v:=v+z[i].ves;
end;
end;
if km=0 then writeln('Мальчиков в списке нет!')
else
begin
writeln('Средний рост мальчиков=',round(r/km));
writeln('Самый высокий ',z[imx].fam);
end;
if kd=0 then writeln('Девочек в списке нет!')
else writeln('Средний вес девочек=',round(v/kd));
readln
end.