Помогите написать программу в pascal'e. Если матрица квадратная, то поменять местами минимальный и максимальный элементы побочной диагонали. В противном случае-заменить элементы четных строк нулями.


Аноним: Фантазийное задание)))

Ответы

Ответ дал: Аноним
0
const
  nm = 20;
  nn = 20;

var
  a: array[1..nm, 1..nn] of integer;
  i, j, m, n, k, imin, imax, nmin, nmax: integer;

begin
  Write('Введите число строк и столбцов матрицы: ');
  Readln(m, n);
  Randomize;
  Writeln('Исходная матрица');
  for i := 1 to m do
  begin
    for j := 1 to n do
    begin
      a[i, j] := Random(101) - 50;
      Write(a[i, j]:4)
    end;
    Writeln
  end;
  if m = n then begin
    imax := 1; imin := 1; nmax := a[1, n]; nmin := nmax;
    for i := 2 to n do
    begin
      k := a[i, n - i + 1];
      if nmax < k then begin imax := i; nmax := k end;
      if nmin > k then begin imin := i; nmin := k end
    end;
    a[imax, n - imax + 1] := nmin; a[imin, n - imin + 1] := nmax
  end
  else begin
    i := 2;
    while i <= m do
    begin
      for j := 1 to n do a[i, j] := 0;
      i := i + 2
    end;
  end;
  Writeln('Матрица-результат');
  for i := 1 to m do
  begin
    for j := 1 to n do Write(a[i, j]:4);
    Writeln
  end;
  Writeln
end.

Тестовые решения:
Введите число строк и столбцов матрицы: 5 5
Исходная матрица
  29  40 -24  34  16
  32 -45   9 -10  27
 -45  30 -50 -24 -50
  15  33   3  12  36
  46 -46   0   2  43
Матрица-результат
  29  40 -24  34  16
  32 -45   9 -10  27
 -45  30  46 -24 -50
  15  33   3  12  36
 -50 -46   0   2  43

Введите число строк и столбцов матрицы: 5 6
Исходная матрица
  27   3 -18  36 -48  22
 -27 -19   4 -36 -50  -9
 -48 -25   9 -36  10  26
  10 -22 -15 -40 -42  38
 -31  32  41 -17 -26  22
Матрица-результат
  27   3 -18  36 -48  22
   0   0   0   0   0   0
 -48 -25   9 -36  10  26
   0   0   0   0   0   0
 -31  32  41 -17 -26  22



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