Полезные алгоритмы для работы с двумерными массивами.
Предлагаю несколько полезных алгоритмов для решения задач на двумерные массивы. Они несколько выходят за школьный курс, но для общего развития будет полезно.
Умножение матрицы на вектор.
Для вычисления произведения матрицы A(N,N) на вектор B(M) необходимо вычислить: Сi= aij*bj, i=1,…, N
for i:=1 to N do begin
s:=0;
for j:=1 to M do s:=s+a[i,j]*b[j];
c[i]:=s;
end;
for i:=1 to N do write (c[i],' ')
Удалить строку из матрицы.
Требуется удалить строку с заданным номером k. Удалить строку, расположенную на k – м месте, можно сдвинув остальные (k+1), (k+2) и т.д. строки на одну позицию вверх. Число строк уменьшится на одну.
N:=N-1;
for i:=k to N do
for j:=1 to M do a[i,j]:=a[i+1,j];
Включить строку в матрицу.
Включаемая строка задана в виде одномерного массива. Перед включением строки в массив, необходимо его раздвинуть, т.е. передвинуть, начиная с (к+1) строки, на одну позицию вниз. Перемещение строк необходимо начинать с последней. Размер массива увеличивается на одну строку.
for i:=N downto K do
for j:=1 to M do a[i+1,j]:=a[I,j];
for j:=1 to M do a[k,j]=c[j];
n:=n+1;
Перестановка строк матрицы.
С использованием вспомогательной переменной Р перестановка осуществляется во всех столбцах двух строк.
for k:=1 to M do begin
P:=a[I,k];
a[I,k]:=a[j,k];
a[j,k]:=p;
end;