Определить комбинированный тип для представления анкеты ребенка, состоящей из его имени, пола и роста. Ввести информацию по 20 детям. Вывести имя самого высокого мальчика. Вывести средний рост мальчиков. Далее вывести имена всех мальчиков ниже среднего.

2

Ответы и объяснения

Лучший Ответ!
  • Участник Знаний
2014-03-09T14:42:15+04:00
Uses crt;
type zapis=record
im:string;
pol:char;
rost:real;
end;
var
a:array [1..20] of zapis;
n,i:integer;
max,sr:real;
t:string;
w:char;
begin
clrscr;
writeln('kolichestvo detei:');
readln(n);
for i:=1 to n do
begin
writeln('rebenok ',i);
write(' - imya: ');readln(a[i].im);
write(' - pol (m/g): ');readln(a[i].pol);
write(' - rost: ');readln(a[i].rost);
end;
clrscr;
writeln('spisok detei:');
writeln('--------------------------------------------------------');
writeln('Imya':15, ' | ', 'Pol':15, ' | ', 'Rost':20, ' | ');
writeln('--------------------------------------------------------');
for i:=1 to n do
writeln(a[i].im:15, ' | ', a[i].pol:15, ' | ', a[i].rost:20:2,' | ');
writeln('--------------------------------------------------------');
writeln;
max:=a[1].rost;
sr:=0;
for i:=1 to n do
begin
if a[i].rost>max then max:=a[i].rost;
if a[i].pol='m' then sr:=sr+a[i].rost;
end;
sr:=sr/n;
writeln('Samii visokii:');
for i:=1 to n do
if a[i].rost=max then writeln(' - ',a[i].im);
writeln;
writeln('Srednii rost mailchikov: ',sr:5:2);
writeln;
writeln('Malchiki nige srednego:');
for i:=1 to n do
if (a[i].rost<sr)and( a[i].pol='m') then writeln(' - ',a[i].im);
end.
2014-03-09T16:24:34+04:00
C:array[1..20] of string;
i,j,rost,summ,n:integer;
begin
n:=20;
writeln('введите имена детей');
for i:=1 to n do
readln(b[i,1]);
writeln('введите рост для каждого ребенка по порядку');
for i:=1 to n do
readln(a[i]);
writeln('введите пол ребенка(м или ж)');
for i:=1 to n do
readln(b[i,2]);
for i:=1 to n do
if  a[i]>rost then rost:=a[i];
for i:=1 to n do
if b[i,2]='м' then
summ:=summ+a[i];
for i:=1 to n do
if a[i]<summ/n then
c[i]:=b[i,1];
writeln('средний рост мальчиков=',summ/n);
write('имена мальчиков с ростом ниже среднего:');
for i:=1 to n do
write(c[i],' ');
end.