1. "Школьный" вариант (так учат в школах)//PascalABC.Net 3.0, сборка 1064const 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, сборка 1064begin 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