Всем Привет! Люди добрые помогите решением. Первую задачу отправил на проверку Спасибо!!! Сейчас вторая. В матрице A(m x m) найти сумму элементов четных столбцов. Если эта сумма положительна, то все элементы нечетных строк возвести в квадрат. В противном случае ко всем элементам побочной диагонали прибавить число 2.

Ответы

Ответ дал: SoftWind
0

program Task;

const

  M = 3;

var

  a: array[1..M, 1..M] of integer;

  i, j: integer;

  sum: integer;

  result: real;

begin

  { Заполняем переменные }

  sum := 0;

  result := 0.0;

  writeln('----------------------------------');

  { Заполняем массив случайным набором элементов }

  for i:=1 to M do

    begin

      for j:=1 to M do

        begin

          a[i,j] := random (40)-20;

          write(a[i,j]:4);

        end;

        writeln();

    end;

  { Считаем количество элементов }

  for i:=1 to M do

    for j:=1 to M do

      sum := sum + a[i,j];

  writeln('Sum: ',sum);

  { Если количество элементов > 0 - выполняем возведение в квадрат }

  if (sum > 0) then

    for i:=1 to ((M div 2) + (m mod 2)) do

      for j:=1 to M do

        a[i*2-1,j] := a[i*2-1,j]*a[i*2-1,j]

  { Иначе - увеличиваем элементы побочной диагонали на 2 }

  else

    for i:=1 to M do

        a[M-i+1,i] := a[M-i+1,i] + 2;

  for i:=1 to M do

    begin

      for j:=1 to M do

        write(a[i,j]:4);

      writeln();

    end;

  writeln('----------------------------------');

end.

{*

Пример результатов:

----------------------------------

   9   5  12

  -9  -2 -15

  -4  19  -4

Sum: 11

  81  25 144

  -9  -2 -15

  16 361  16

----------------------------------

----------------------------------

   7   2  13

 -16  -3  17

 -10 -16   3

Sum: -3

   7   2  15

 -16  -1  17

  -8 -16   3

----------------------------------

*}

 

Тоже самое, но менее развёрнуто:

 

program Task;

const

  M = 3;

var

  a: array[1..M, 1..M] of integer;

  i, j: integer;

  sum: integer;

  result: real;

begin

  sum := 0;

  result := 0.0;

  for i:=1 to M do

    for j:=1 to M do

      a[i,j] := random (40)-20;

  for i:=1 to M do

    for j:=1 to M do

      sum := sum + a[i,j];

  if (sum > 0) then

    for i:=1 to ((M div 2) + (m mod 2)) do

      for j:=1 to M do

        a[i*2-1,j] := a[i*2-1,j]*a[i*2-1,j]

  else

    for i:=1 to M do

        a[M-i+1,i] := a[M-i+1,i] + 2;

end.

Вас заинтересует