Напишите программу в массиве с(14) найти сумму отрицательных и среднее арифметическое положительных элементов.

graf2231 graf2231    1   09.07.2019 03:00    11

Ответы
alino4kakostina alino4kakostina  15.09.2020 11:45
1. "Школьный" вариант (так учат в школах)
//PascalABC.Net 3.0, сборка 1064
const
  n=15;
var
  c:array[1..n] of integer;
  i,k:integer;
  sn,ap:longint;
begin
  Randomize;
  Writeln('Исходный массив');
  k:=0;
  for i:=1 to n do begin
    c[i]:=Random(51)-25;
    Write(c[i]:4);
    if c[i]<0 then sn:=sn+c[i]
    else
      if c[i]>0 then begin ap:=ap+c[i]; Inc(k) end
  end;
  Writeln;
  Writeln('Сумма отрицательных элементов равна ',sn);
  Writeln('Среднее арифметическое положительных элементов равно ',ap/k)
end.

Тестовое решение:
Исходный массив
  22  15  -5   4   7  -6  24  23 -25 -21 -10  21 -11  -4  22
Сумма отрицательных элементов равна -82
Среднее арифметическое положительных элементов равно 17.25

2. Современный вариант (а так в школах почему-то не учат)
//PascalABC.Net 3.0, сборка 1064
begin
  var c:=SeqRandom(15,-25,25);
  Writeln('Исходный массив'); Println(c);
  Writeln('Сумма отрицательных элементов равна ',c.Where(x->x<0).Sum);
  Writeln('Среднее арифметическое положительных элементов равно ',
    c.Where(x->x>0).Average)
end.

Тестовое решение:
Исходный массив
[21,13,16,-6,-5,-21,-23,10,14,5,-14,7,-10,-9,9]
Сумма отрицательных элементов равна -120
Среднее арифметическое положительных элементов равно 12.125
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика