Данные о росте учащихся класса хранятся в виде массива. Рост мальчиков кодируется знаком...

0 голосов
46 просмотров

Данные о росте учащихся класса хранятся в виде массива. Рост мальчиков кодируется знаком минус, а рост девочек знаком плюс. Составьте блок-схему и программу определения среднего роста девочек и мальчиков одного класса. В классе учится п учеников.


Информатика | 46 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

// PascalABC.NET 3.0, сборка 1128
begin
  var n:=ReadInteger('Количество учеников: ');
  Writeln('Вводите рост учеников (девочек - с минусом)');
  var a:=ReadArrInteger(n);
  WriteFormat('Средний рост мальчиков {0}, девочек {1}',
    a.Where(x->x>0).Average,-a.Where(x->x<0).Average)<br>end.

Тестовое решение:
Количество учеников:  5
Вводите рост учеников (девочек - с минусом)
160 -156 162 -160 -158
Средний рост мальчиков 161, девочек 158

(142k баллов)
0 голосов

Const n=10;
var
a: array[1..n] of integer;
i, km, kf, tm, tf: integer;
sm, sf: real;
begin
for i:=1 to n do
  readln(a[i]);  //считываем массив
km:=0; kf:=0; tm:=0; tf:=0;
for i:=1 to n do
//находим суммарный рост мальчиков
//и девочек, и количество
  if a[i] < 0 then
  begin
    km:=km+1;
    tm:=tm + abs(a[i]);
  end
  else
  begin
    kf:=kf+1;
    tf:=tf + a[i];
  end;
//находим среднее арифметическое
if km > 0 then
sm:=tm/km;
if kf > 0 then
sf:=tf/kf;
writeln('Средний рост мальчиков: ', sm);
writeln('Средний рост девочек: ', sf);
end.


image
(15.5k баллов)