Если для всех i=1,..., n и j=1,...,n, i>j выполняется равенство a[i, j]=a[j, i], то матрица является симметричной. Поэтому можно составить следующую функцию:
Program Example_117;
Function Check2(x: dmyarray): Boolean;
Var i, j: Integer;
t: Boolean;
Begin
t:=True;
{Предположим, что матрица симметрична}
i:=2;
While t And (i<n) Do
Begin
j:=1;
While (j<i) And (x[i,j] =x[j,i])Do
Inc(j);
t:=(j=i);
Inc(i);
End;
Check2:=t;
End;
Таким образом, если встретится хотя бы одна такая пара, что соответствующие элементы не будут равны, то функция вернет значение "ложь" (False).
Изменение значений некоторых
Элементов, обладающих заданным
Свойством
Решение таких задач похоже на решение задач для одномерных массивов.
Пример 1
В массиве размерностью nxm к элементам четных столбцов прибавить элемент первого столбца соответствующей строки.
Program Example_118;
Procedure Substitution1 (Var x: dmyarray);
Var i, j: Integer;
Begin
For i:=1 To n Do
For j:=1 to m Div 2 Do
{рассмотрим четные столбцы матрицы}
Inc(x[i, 2*j], x[i, 1])
End;
Пример 2
Заменить все отрицательные элементы на противоположные.
Program Example_119;
Procedure Substitution2 (Var x: dmyarray);
Var i, j: Integer;
Begin
For i:=1 To n Do
For j:=1 To m Do
x[i, j]:=abs(x[i, j]);
End;
Заполнение двухмерного массива
По правилу
Пример
Составить программу, запрашивающую координаты ферзя на шахматной доске и показывающую поля доски, находящиеся под боем (на доске нет других фигур).