Вы находитесь на странице: 1из 27

ПРОГРАММИРОВАНИЕ

НА ЯЗЫКЕ C++
Двумерные массивы
МНОГОМЕРНЫЕ МАССИВЫ -
ОПРЕДЕЛЕНИЕ
• До этого момента мы рассматривали одномерные массивы,
которыми не всегда можно ограничиться.
• Элементы массива могут быть любого типа данных, даже
массива
• Массив массивов называется многомерным массивом
• С/С++ позволяет создавать и обрабатывать многомерные
массивы.
• Простейшим видом многомерного массива является
двумерный массив.
• Двумерный массив - это массив одномерных массивов.
МНОГОМЕРНЫЕ МАССИВЫ -
ОПРЕДЕЛЕНИЕ
• Двумерные массивы (матрицы, таблицы) - представляют
собой фиксированное количество элементов одного и того
же типа, объединенных общим именем, где каждый элемент
определяется номером строки и номером столбца, на
пересечении которых он находится.
• Двумерные массивы находят свое применение тогда, когда
исходные данные представлены в виде таблицы, или когда для
хранения данных удобно использовать табличное
представление
• Нумерация строк и столбцов начинается с нулевого номера.
• Поэтому если массив содержит три строки и четыре столбца,
то строки нумеруются: О, 1, 2; а столбцы: 0, 1, 2, 3.
МНОГОМЕРНЫЕ МАССИВЫ -
ОПРЕДЕЛЕНИЕ
• Визуально, двумерный массив — это обычная таблица, со
строками и столбцами.

• Фактически двумерный массив — это одномерный массив


одномерных массивов.
МНОГОМЕРНЫЕ МАССИВЫ -
ОПРЕДЕЛЕНИЕ
• Определение многомерных массивов почти полностью
совпадает с определением одномерных массивов, за
исключением того, что вместо одного размера может быть
указано несколько:

• m — количество строк двумерного массива;


• n — количество столбцов двумерного массива;
• m * n — количество элементов массива.
МНОГОМЕРНЫЕ МАССИВЫ -
ОПРЕДЕЛЕНИЕ
• В объявлении двумерного массива, также как и в объявлении
одномерного массива, первым делом, нужно указать:
➢тип данных;
➢имя массива.
• После чего, в первых квадратных скобочках указывается
количество строк двумерного массива, во вторых квадратных
скобочках — количество столбцов двумерного массива.

// синтаксис объявления двумерного массива


/*тип данных*//*имя */[/*количество строк*/][/*количество столбцов*/];
МНОГОМЕРНЫЕ МАССИВЫ -
ОПРЕДЕЛЕНИЕ
Пример 1:

• Этим кодом мы создали матрицу размером 100×50, которая


изначально заполнена нулями.
• В двумерном массиве первый (левый) индекс принято читать как
количество строк, а второй (правый) как количество столбцов.
Пример 2:
int array[2][4]; // 2-элементный массив из 4-элементных массивов
МНОГОМЕРНЫЕ МАССИВЫ –
ИНИЦИАЛИЗАЦИЯ
• Допустим, в массиве 5 строк, 3 столбца.

• после знака присвоить ставятся общие фигурные скобочки, внутри


которых ставится столько пар фигурных скобочек, сколько должно быть
строк в двумерном массиве, причём эти скобочки разделяются
запятыми.
• в каждой паре фигурных скобочек записывать через запятую элементы
двумерного массива.
• во всех фигурных скобочках количество элементов должно совпадать.
• так как в массиве пять строк, то и внутренних пар скобочек тоже пять.
Во внутренних скобочках записаны по три элемента, так как количество
столбцов — три.
МНОГОМЕРНЫЕ МАССИВЫ –
ИНИЦИАЛИЗАЦИЯ

• Графически наш массив будет выглядеть, как двумерная таблица


В каждой ячейке двумерного
массива a показано значение, в
нижнем правом углу показан
адрес данной ячейки.
Адресом ячейки двумерного
массива является имя массива,
номер строки и номер столбца.
МНОГОМЕРНЫЕ МАССИВЫ –
ИНИЦИАЛИЗАЦИЯ
• каждый набор значений соответствует определенной строке

• C++ заменяет отсутствующие инициализаторы значением 0


МНОГОМЕРНЫЕ МАССИВЫ –
ИНИЦИАЛИЗАЦИЯ
• Компилятор может сам вычислить количество строк в массиве.

• !!! Однако не указывать два индекса – это уже ошибка:


МНОГОМЕРНЫЕ МАССИВЫ –
ДОСТУП К ЭЛЕМЕНТУ
• Чтобы получить доступ к элементам двумерного массива —
просто используйте два индекса:
МНОГОМЕРНЫЕ МАССИВЫ –
ДОСТУП К ЭЛЕМЕНТУ
• Для доступа ко всем элементам двумерного массива требуется
два цикла: один для строк и один для столбцов.
• Поскольку доступ к двумерным массивам обычно выполняется по
строкам, то левый индекс используется в качестве внешнего
цикла.
МНОГОМЕРНЫЕ МАССИВЫ –
ЗАПОЛНЕНИЕ
• Многомерный массив заполняется значениями с помощью
вложенных циклов.
• В основном, количество циклов совпадает с размерностью
массива:
МНОГОМЕРНЫЕ МАССИВЫ –
ВЫВОД
• количество циклов повторяется при любой обработке массива,
например, при выводе элементов массива:

• В результате получим следующий вывод


МНОГОМЕРНЫЕ МАССИВЫ
• Пример: программа вычисляет и выводит таблицу умножения от 1
до 9 (включительно)
МНОГОМЕРНЫЕ МАССИВЫ
• Внимание!!!
• при выводе таблицы в цикле for мы начинаем с 1 вместо 0.
• это делается с целью предотвращения вывода нулевой строки с
нулевыми столбцами, дабы в результате у нас не было строки с
одними нулями!
МНОГОМЕРНЫЕ МАССИВЫ
Пример: хранилище данных
• Изначально оно будет пустое (содержать нули).
• Пользователь сможет записывать в нее значения и извлекать при
необходимости (пользователь будет указывать номер дома и
квартиры человека, а хранить мы будем его возраст).
МНОГОМЕРНЫЕ МАССИВЫ
МНОГОМЕРНЫЕ МАССИВЫ
МНОГОМЕРНЫЕ МАССИВЫ
МНОГОМЕРНЫЕ МАССИВЫ –
ПОИСК МАКСИМУМА
МНОГОМЕРНЫЕ МАССИВЫ –
ПОИСК МАКСИМУМА
МНОГОМЕРНЫЕ МАССИВЫ –
ПОИСК МАКСИМУМА В КАЖДОЙ
СТРОКЕ
МНОГОМЕРНЫЕ МАССИВЫ –
ПОИСК МАКСИМУМА В КАЖДОМ
СТОЛБЦЕ
МНОГОМЕРНЫЕ МАССИВЫ –
СУММА ЭЛЕМЕНТОВ В КАЖДОМ
СТОЛБЦЕ
МНОГОМЕРНЫЕ МАССИВЫ:
ЗАДАНИЕ
• Реализовать игру «крестики-нолики» на основе двумерного
массива 3:3.
• Вначале необходимо определить, кто ходит первый Х или 0.

Вам также может понравиться