zadach295.PAS

{* Задача 295 *}

Unit ZADACH295;
Interface
Implementation
Begin
 writeln('Дана вещественная матрица размером M х N. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (один из них) оказался в верхнем левом углу.');
End.

Program zadach295;

Uses zadach295.pas; {* Эту строку можно удалить *}
Uses crt; {* Подключение модулей *}
Var {* Необходимые переменные *}
  n   : integer;
  m   : integer;
  i   : integer;
  j   : integer;
  l   : integer;
  k   : integer;
  max : integer;
  a   : Array [1..100] Of Array [1..100] Of integer;
  b   : Array [1..100] Of integer;
Begin
  clrscr; {* Стираем всё с экрана *}
  randomize;
  write('Введите  количество  строк  матрицы: ');
  readln(n);
  write('Введите  количество  столбцов  матрицы: ');
  readln(m);
  For i := 1 To n Do {* Переменная i увеличивается с 1 до n *}
  Begin
    For j := 1 To m Do {* Переменная j увеличивается с 1 до m *}
    Begin
      a[i, j] := trunc(random * 100) - random(80);
      write(a[i, j] : 4);
    End;
    writeln; {* Пропускаем одну строку *}
  End;
  max := - 80;
  For i := 1 To n Do {* Увеличиваем i от 1 до n с шагом 1 *}
    For j := 1 To m Do {* Цикл для j => [1 .. m] *}
      If a[i, j] > max Then
      Begin
        max := a[i, j];
        l := i;
        k := j;
      End;
  i := 1;
  For j := 1 To m Do {* Увеличиваем j от 1 до m с шагом 1 *}
  Begin
    b[j] := a[i, j];
    a[i, j] := a[l, j];
    a[l, j] := b[j];
  End;
  j := 1;
  For i := 1 To n Do {* Переменная i увеличивается с 1 до n *}
  Begin
    b[i] := a[i, j];
    a[i, j] := a[i, k];
    a[i, k] := b[i];
  End;
  writeln('Матрица примет вид:');
  For i := 1 To n Do {* Цикл для i => [1 .. n] *}
  Begin
    For j := 1 To m Do {* Переменная j увеличивается с 1 до m *}
      write(a[i, j] : 4);
    writeln; {* Пустая строка *}
  End;
  readln
End.