Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 2012 / Тема 6 - Массивы и матрицы.doc
Скачиваний:
22
Добавлен:
16.03.2015
Размер:
215.55 Кб
Скачать

Базовые алгоритмы обработки матриц

1). Сумма элементов матрицы.

S := 0;

for i := 1 to n do

for j := 1 to m do

S := S + a[i,j];

2) Сумма элементов под главной диагональю (диагональ учитывается).

S := 0;

for i := 1 to n do

for j := 1 to i do

S := S + a[i,j];

3) Сумма элементов над главной диагональю (диагональ учитывается).

S := 0;

for i := 1 to n do

for j := i to n do

S := S + a[i,j];

4) Сумма над побочной диагональю.

S := 0;

for i := 1 to n do

for j := 1 to n-i+1 do

S := S + a[i,j];

5) Сумма под побочной диагональю.

S := 0;

for i := 1 to n do

for j := n-i+1 to n do

S := S + a[i,j];

6) Сумма элементов над главной и побочной диагоналями.

S := 0;

for i := 1 to (n+1) div 2 do

for j := 1 to n-i+1 do

S := S + a[i,j];

7) Сумма под главной и побочной диагоналями.

S := 0;

for i := n div 2 +1 to n do

for j := n-j+1 to i do

S := S + a[i,j];

8) Сумма слева от главной и побочной диагоналей.

S := 0;

for i := 1 to (n+1) div 2 do

for j := 1 to n-i+1 do

S := S + a[i,j];

9) Сумма справа от главной и побочной диагоналей.

S := 0;

for i := n div 2 +1 to n do

for j := n-j+1 to i do

S := S + a[i,j];

10) Сумма элементов главной диагонали.

S := 0;

for i := 1 to n do S := S + a[i,i];

11). Сумма элементов побочной диагонали.

S := 0;

for i := 1 to n do S := S + a[i,n-i+1];

12) Умножение матриц ( A(n x m) x B(m x l) = C(n x l))

For i:=1 to n do

For j:=1 to m do begin

c[i,j]:=0;

For k:=1 to l do c[i,j]:=c[i,j]+a[i,k]b[k,j]

End;

13) Транспонирование матрицы.

var a: array [1..n,1..m] of <T>; {T– заданный тип}

b: array [1..m,1..n] of <T>;

...

Begin

for i := 1 to n do

for j := 1 to m do

b[i,j] := a[j,i];

End.

14) Транспонирование матрицы в самой себе (относительно главной диагонали).

var a: array [1..n,1..n] of <T>;

V: <T>;

...

Begin

for i := 2 to n do

for j := 1 to i-1 do begin

V := a[j,i];

a[j,i] := a[i,j];

a[i,j] := V;

end;

15) Поменять местами kиlстроки в матрице:

Const n_max=10; m_max:=15;

Type

Matrix=array[1..n_max,1..m_max] of Real;

Var A, B, C: Matrix;

R: real; i, n, k,l : Byte;

Const n_max=10; m_max:=15;

Type vector=array[1.n_max] of Real;

Matrix=array[1..m_max] of vector;

Var A, B, C: Matrix;

R: Vector; k, l :Byte;

Begin

For i:=1 to n do Begin

R:=a[k,i]; a[k,i]:=a[l,i]; a[l,i]:=R;

End;

End.

Begin

R:=a[k];

a[k]:=a[l];

a[l]:=R;

End.

Замечание:Описание массива влияет на программную реализацию алгоритма.