zadach293.PAS

{* Задача 293 *}

Unit ZADACH293;
Interface
Implementation
Begin
 writeln('Дана целочисленная квадратная матрица. Найти в каждой строке наиболь¬ший элемент и поменять его местами с элементом главной диагонали.');
End.

Program pas0;

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