- •Тема 6 – Описание и обработка массивов и матриц13 Массивы Описание массивов
- •Var a: Matrix; {матрица n X m}
- •Расположение матрицы в памяти компьютера
- •1Строка( m элементов) 2 строка (m элементов)
- •Ввод и вывод массивов
- •Базовые алгоритмы обработки векторов
- •Алгоритмы поиска
- •Базовые алгоритмы обработки матриц
Базовые алгоритмы обработки матриц
1). Сумма элементов матрицы.
S := 0;
for i := 1 to n do
for j := 1 to m do
S := S + a[i,j];
2) Сумма элементов под главной диагональю (диагональ учитывается).
for i := 1 to n do
for j := 1 to i do
S := S + a[i,j];
3) Сумма элементов над главной диагональю (диагональ учитывается).
for i := 1 to n do
for j := i to n do
S := S + a[i,j];
4) Сумма над побочной диагональю.
for i := 1 to n do
for j := 1 to n-i+1 do
S := S + a[i,j];
5) Сумма под побочной диагональю.
for i := 1 to n do
for j := n-i+1 to n do
S := S + a[i,j];
6) Сумма элементов над главной и побочной диагоналями.
for i := 1 to (n+1) div 2 do
for j := 1 to n-i+1 do
S := S + a[i,j];
7) Сумма под главной и побочной диагоналями.
for i := n div 2 +1 to n do
for j := n-j+1 to i do
S := S + a[i,j];
8) Сумма слева от главной и побочной диагоналей.
for i := 1 to (n+1) div 2 do
for j := 1 to n-i+1 do
S := S + a[i,j];
9) Сумма справа от главной и побочной диагоналей.
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. |
Замечание:Описание массива влияет на программную реализацию алгоритма.