logo
Otvety_IGA

113.Определение индексов элементов матрицы, расположенных на, над и под главной и побочной диагональю.

Задать матрицу в Паскале можно следующим образом: n и m строки и столбцы

const

NN = 10; MM = 10;

type

matrix = array[1..NN] of array[1..MM] of integer;

В данном случае мы описали матрицу размеров NNxMM. Т.е. матрица в понимании компилятора - это массив из массивов. [e1,1] [e1,2] [e1,3] ... [e1,NN] [e2,1] [e2,2] [e2,3] ... [e2,NN] ... [eMM,1] [eMM,2] [eMM,3] ... [eMM,NN]

Если в программе два массива заданы одинаково, то одному массиву можно присвоить другой.

К элементам массива обращаются по индексам.

Пример.

{вывод на экран элемент массива A с индексом 5}

write(A[5]);

{ввод элемента массива A с индексом 6}

readln(A[6]);

{

присваиваем элементу массива с индексом 7 сумму эл-тов

массива A с индексами 5 и 6

}

A[7]:=A[5]+A[6];

Сумма элементов на главной диагонали:

s:=0;

For i:=1 To n Do s:=s+a[i, i];

* 0 0 0 0

0 * 0 0 0

0 0 * 0 0

0 0 0 * 0

0 0 0 0 *

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

s:=0;

For i:=1 To n Do s:=s+a[i, n+1-i];

0 0 0 0 *

0 0 0 * 0

0 0 * 0 0

0 * 0 0 0

* 0 0 0 0

Сумма элементов, под главной диагонали:

s:=0;

For i:=1 To n Do

For j:=1 To i Do s:=s+a[i, j];

* 0 0 0 0

* * 0 0 0

* * * 0 0

* * * * 0

* * * * *

Сумма элементов, над главной диагонали:

s:=0;

For i:=1 To n Do

For j:=i To n Do s:=s+a[i, j];

* * * * *

0 * * * *

0 0 * * *

0 0 0 * *

0 0 0 0 *

Сумма элементов, над побочной диагонали:

s:=0;

For i:=1 To n Do

For j:=1 To n-i+1 Do s:=s+a[i, j];

* * * * *

* * * * 0

* * * 0 0

* * 0 0 0

* 0 0 0 0

Сумма элементов, под побочной диагонали:

s:=0;

For i:=1 To n Do

For j:=n-i+1 To n Do s:=s+a[i, j];

0 0 0 0 *

0 0 0 * *

0 0 * * *

0 * * * *

* * * * *