Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_IGA.docx
Скачиваний:
29
Добавлен:
25.09.2019
Размер:
5.47 Mб
Скачать
  1. Матрица. Ввод и вывод элементов матрицы.

Матрица - это двумерный массив, состоящего из определенного числа строк и столбцов. Другими словами, это набор однотипных данных, имеющий общее имя, доступ к элементам которого осуществляется по двум индексам. Наглядно двумерный массив удобно представлять в виде таблицы, в которой n строк и m столбцов, а под ячейкой таблицы, стоящей в i-й строке и j-м столбце понимают некоторый элемент массива a[i][j].

Если разобраться с тем, что такое a[i] при фиксированном значении i, то увидим, что это одномерный массив, состоящий из m элементов, к которым можно обращаться по индексу: a[i][1], a[i][2], ... , a[i][m]. Схематически это вся i-я строка строка таблицы. Аналогично, если мы рассмотрим одномерный массив строк, то сможем заметить, что это так же двумерный массив, где каждый отдельный элемент - это символ типа char, а a[i] - это одномерный массив, представляющий отдельную строку исходного одномерного массива строк.

Если число строк матрицы равняется числу столбцов, то матрицы данного типа называются квадратными. Элементы квадратной матрицы вида B[1,1], B[2,2], B[3,3]... составляют главную диагональ матрицы. Иногда вводят понятие побочной диагонали квадратной матрицы для элементов вида B[1,N], B[2,N-1], B[3,N-2]...B[N,1], где N - число строк (столбцов) матрицы.

При вводе и выводе элементов двумерных массивов используются вложенные циклы, в которых внешний оператор цикла, как правило, задает изменение строк массива, внутренний оператор цикла - изменение столбцов.

Ввод и вывод элементов двумерного массива (матрицы). При вводе и выводе элементов двумерного массива (матрицы) тоже удобно использовать оператор FOR. Только теперь необходимо уже два оператора FOR, так как у матрицы каждый элемент имеет два индекса – номер строки и номер столбца.

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 * * * *

* * * * *

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]