type M = array[1..mm, 1..nn] of integer; KS = array[1..2, 1..nn] of integer;
procedure GetKS(var a: M; var b: KS; m, n: integer); { Помещает в b[1,*] суммы отрицательных элементов массива а[m,n] по столбцам, а в b[2,*] - количества этих элементов } var i, j, s, k: integer; begin for j := 1 to n do begin k := 0; s := 0; for i := 1 to m do if a[i, j] < 0 then begin s := s + a[i, j]; Inc(k) end; b[1, j] := s; b[2, j] := k end end;
procedure Init(var a: M; m, n: integer); { Заполняет массив a[m,n] случайными значениями на интервале [-50;50] и выводит их на экран } var i, j: integer; begin for i := 1 to m do begin for j := 1 to n do begin a[i, j] := Random(101) - 50; Write(a[i, j]:5) end; Writeln end end;
procedure OutKS(var a: KS; n: integer); { Выводит на экран элементы массива a[2,n]} var i, j: integer; begin for i := 1 to 2 do begin for j := 1 to n do Write(a[i, j]:5); Writeln end end;
procedure Work(var a: M; var b: KS; m, n: integer); { цикл работы с массивом } begin Init(a, m, n); GetKS(a, b, m, n); Writeln('Суммы и количество'); OutKS(b, n); end;