double arrow

Матрицы (двухмерные массивы)

Что такое матрица?

Вспомните, что из себя представляет адрес любого человека (или фирмы). Вы можете ска-

зать: "Я живу на Невском проспекте в доме 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 элементов). Если матрица глобальная (объявляется выше всех процедур и функций), то она в самом начале заполняется нулями. Локальные матрицы (объявленные внутри процедуры или функции) содержат «мусор» – неизвестные значения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: