Четверг, 25.04.2024, 08:28
Информатика и математика в Плесской школе
Приветствую Вас Гость | RSS
Меню сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа

Полезные алгоритмы для работы с двумерными массивами.

Предлагаю несколько полезных алгоритмов для решения задач на двумерные массивы. Они несколько выходят за школьный курс, но для общего развития будет полезно.

Суммирование диагональных элементов матрицы (вычисление следа матрицы).
Для матрицы A(N,N) необходимо вычислить сумму элементов лежащих на главной диагонали. 
s:=0
for i:=1 to N do s:=s+a[i,i];
writeln (s);
 
Транспонирование матрицы. 
Необходимо заменить строки матрицы её столбцами, а столбцы – строками.
1) с использованием дополнительного массива
for i:=1 to N do
  for j:=1 to N do
     b[i,j]:=a[j,i];
2) без использования дополнительного массива (только для квадратной матрицы)
for i:=1 to N-1 do
   for j:=i+1 to N do begin
                        s:=a[i,j];
                        a[i,j]:=a[j,i];
                        a[j,i]:=s;
                      end;

Умножение матрицы на вектор.

Для вычисления произведения матрицы 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;

 

Поиск
Календарь
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Учительский портал
    Copyright MyCorp © 2024