zadach211.PAS

{* Задача 211 *}

Unit ZADACH211;
Interface
Implementation
Begin
 writeln('Дан массив A(5, 5). Изменить часть матрицы, находящуюся под главной диагональю следующим образом: если элемент A[i, j] этой части матрицы больше элемента A[j, i], то задать элементу A[i, j] новое значение, равное полу сумме двух этих элементов.');
End.

Program S2_Z3;

Uses zadach211.pas; {* Эту строку можно удалить *}
Type {* Используемые типы *}
  m = Array[1..100, 1..100] Of real;
Var {* В работе нам потребуются переменные: *}
  A                : m;
Procedure vvod(m : integer;
n                : integer;
Var {* В работе нам потребуются переменные: *}
  x : m);
Var {* Необходимые переменные *}
  i               : integer;
  j               : integer;
For i := 1 To m Do{* Увеличиваем i от 1 до m с шагом 1 *}
Procedure mat(m : integer;
n               : integer;
Var {* Необходимые переменные *}
  x : m);
Var {* Необходимые переменные *}
  i : integer;
  j : integer;
  t : real;
Begin
  writeln('изменённый матрица A[i, j] будет выглядеть так');
  For i := 1 To m Do {* Увеличиваем i от 1 до m с шагом 1 *}
    For j := 1 To n Do {* Переменная j увеличивается с 1 до n *}
      If i > j Then
        If x[i, j] > x[j, i] Then
          x[i, j] := (x[i, j] + x[j, i]) / 2;
  For i := 1 To m Do {* Переменная i увеличивается с 1 до m *}
    For j := 1 To n Do {* Увеличиваем j от 1 до n с шагом 1 *}
      write( A[i, j] : 2 : 1, '             ');
End;
Begin
  vvod(5, 5, A);
  mat(5, 5, A);
End.