Дана матрица A[1:7;1:6]. Получить среднеарифметическое положительных элементов матрицы, и среднеарифметическое отрицательных элементов матрицы. Получение среднеарифметических реализовать одной функцией и одной процедурой. В процедуре дополнительно получить в виде выходных параметров значения сумм и количества заданных элементов — Pascal(Паскаль)

uses crt;
const n=7;
      m=6;
type matr=array[1..n,1..m] of real;
function SrPol(a:matr):real;
var i,j,k:byte;
    s:real;
begin
s:=0;k:=0;
for i:=1 to n do
for j:=1 to m do
if a[i,j]>0 then
 begin
  k:=k+1;
  s:=s+a[i,j];
 end;
if k=0 then SrPol:=0
else SrPol:=s/k;
end;
procedure SrOtr(a:matr;var sm,sr:real;var k:byte);
var i,j:byte;
begin
sm:=0;k:=0;
for i:=1 to n do
for j:=1 to m do
if a[i,j]<0 then
 begin
  k:=k+1;
  sm:=sm+a[i,j];
 end;
if k=0 then sr:=0
else sr:=sm/k;
end;
var a:matr;
    i,j,k_otr:byte;
    sum,sr_otr:real;
begin
clrscr;
randomize;
writeln('Матрица:');
for i:=1 to n do
 begin
  for j:=1 to m do
   begin
    a[i,j]:=20*random-9;
    write(a[i,j]:6:2);
   end;
  writeln;
 end;
writeln;
writeln('Среднее арифметическое положительных=',SrPol(a):0:2);
SrOtr(a,sum,sr_otr,k_otr);
write('Среднее арифметическое отрицательных=',sr_otr:0:2,' их количество=',k_otr,'  сумма=',sum:0:2);
readln
end.

Leave a Comment

+ 73 = 75