Дана матрица а[1: 4; 1: 4] а) получить сумму и количество четных элементов в интервале [-10 +5]. б) сформировать вектор из сумм элементов матрицы по столбцам в) получить среднеарифметическое значение положительных элементов матрицы. г) получить произведение и сумму элементов в третьем столбце.

dimanebutov1 dimanebutov1    3   16.09.2019 12:10    0

Ответы
daridolgova daridolgova  10.09.2020 10:16
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  Writeln('*** Исходная матрица ***');
  var a:=MatrRandom(4,4,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var s:=a.ElementsByRow.Where(t->t.Between(-10,5) and t.IsEven);
  Writeln('На интервале [-10;5] четных элементов ',s.Count,
      ', их сумма равна ',s.Sum);
  var vc:=a.Cols.Select(t->t.Sum);
  Write('Вектор сумм по столбцам: '); vc.Println;
  Writeln('Среднее арифметическое положительных равно: ',
      a.ElementsByRow.Where(t->t>0).Average);
  Writeln('В третьем столбце сумма элементов равна ',
      a.Col(2).Sum,', произведение равно ',
      a.Col(2).Aggregate(1,(p,q)->p*q))
end.

Пример
*** Исходная матрица ***
  27 -87  73  -6
  48 -50  75 -32
   4  92 -84  85
  27   4  31 -63
----------------
На интервале [-10;5] четных элементов 3, их сумма равна 2
Вектор сумм по столбцам: 106 -41 95 -16
Среднее арифметическое положительных равно: 46.6
В третьем столбце сумма элементов равна 95, произведение равно -14256900

Дана матрица а[1: 4; 1: 4] а) получить сумму и количество четных элементов в интервале [-10 +5]. б)
ПОКАЗАТЬ ОТВЕТЫ
nata04021980 nata04021980  10.09.2020 10:16
Var
  A: array [1..4, 1..4] of integer;
  B: array [1..4] of integer;
  i, j, Count, CountAr: byte;
  ArithMean: real;
  Sum, Mult, SumThird: integer;
begin
Mult := 1;
randomize;
writeln(' *** Исходный массив ***');
for i := 1 to 4 do
begin
  for j := 1 to 4 do
  begin
    //Случайные значение в диапазоне [-30;30]
    A[i, j] := random(61)-30;
    //Сумма и количество четных в диапазоне [-10..5]
    if (A[i, j] mod 2 = 0) and ((A[i, j] >= -10) and (A[i, j] <= 5)) then
    begin
      Sum := Sum + A[i, j];
      Count := Count + 1;
    end;
    //Количество и сумма положительных для среднего арифметического
    if A[i, j] > 0 then
    begin
      CountAr := CountAr + 1;
      ArithMean := ArithMean + A[i, j];
    end;
    //Произведение и сумма 3-его столбца
    if j = 3 then
    begin
      Mult := Mult * A[i, j];
      SumThird := SumThird + A[i, j];
    end;
    write(A[i, j]:5);
  end;
writeln;
end;
writeln('Количество четных [-10..5] = ', Count);
writeln('Сумма четных [-10..5] = ', Sum);
writeln('Среднее арифметическое = ', (ArithMean/CountAr):0:2);
writeln('Произведение в 3 столбце = ', Mult);
writeln('Сумма в 3 столбце = ', SumThird);
//Получение вектора
for j := 1 to 4 do
begin
Sum := 0;
  for i := 1 to 4 do
    Sum := Sum + A[i, j];
  B[j] := Sum;  
end;
writeln('Вектор:');
for i := 1 to 4 do
  writeln(B[i]:5);  
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика