Что такое матрица?
Вспомните, что из себя представляет адрес любого человека (или фирмы). Вы можете ска-
зать: "Я живу на Невском проспекте в доме 20 в квартире 45", но никому в голову не придет сказать: "Я живу в 13678 квартире от начала Невского проспекта". Почему? Потому что неудобно. Первая часть адреса – улица, вторая – дом, третья – квартира.
Часто обычный массив неудобен для хранения данных из-за своей линейной структуры.
Например, пусть нам надо обрабатывать информацию о количестве выпавших осадков за несколько лет, причем известны осадки по месяцам. Если обрабатывать данные вручную, то удобнее всего использовать таблицу - по горизонтали откладывать года, а по вертикали - месяцы (или наоборот). В принципе в программе можно использовать и одномерный массив, но тогда требуется пересчитывать индексы – по известному году и месяцу получать смещение ячейки от начала линейного массива:
Для такого пересчета можно было бы использовать формулу
i = (год - 2008)*12 + месяц - 1; где i – индекс нужного элемента массива. Тем не менее, так не делают (почти никогда), потомучто для работы с табличными данными во всех современных языках программирования существуют двухмерные массивы или матрицы.
|
|
Матрица – это прямоугольная таблица элементов (например, чисел или символов). В ин-
форматике матрица представляется в виде двухмерного массива, то есть массива, все эле-
менты которого имеют два индекса.
Матрица, как и таблица, состоит из строк и столбцов. Два индекса элемента - это и есть номера строки и столбца, на пересечении которых этот элемент находится.
В языке Си каждый индекс записывается отдельно в квадратных скобках. Каждую строку
и каждый столбец матрицы можно рассматривать как обычный одномерный массив. Поэтому можно сказать, что матрица – это массив из массивов. Существует только два ограничения:
1) все элементы матрицы должны быть одинакового типа;
2) все строки матрицы должны быть одинаковой длины.
Первый индекс элемента матрицы – это строка, второй – столбец. Поэтому когда говорят о
«матрице 4 на 5», это означает, что матрица имеет 4 строки и 5 столбца.
Матрицы, у которых число строк равно числу столбцов, называют квадратными. В квад-
ратных матрицах можно выделить главную диагональ – это все элементы, у которых номер
строки равен номеру столбца, то есть
A[0][0], A[1][1],..., A[N-1][N-1]
для матрицы размером N на N .
Объявление матриц
Матрицы объявляются также, как и простые массивы, но у них не один индекс, а два. При объявлении в отдельных квадратных скобках указывается количество строк и количество столбцов.
Например, оператор
|
|
int Bmv[20][10];
выделит место в памяти под матрицу целых чисел, имеющую 20 строк и 10 столбцов (всего 200 элементов). Если матрица глобальная (объявляется выше всех процедур и функций), то она в самом начале заполняется нулями. Локальные матрицы (объявленные внутри процедуры или функции) содержат «мусор» – неизвестные значения.