На Горох
Информатика, 10 класс

§ 67. Матрицы

"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 67. Матрицы

Кратко о теме

Матрица — это таблица значений, у которой есть строки и столбцы. Она помогает хранить и обрабатывать данные, связанные сразу с двумя позициями: например, оценки учеников по предметам или клетки игрового поля. Размер матрицы записывают как m × n: сначала указывают число строк, затем число столбцов. Чтобы обратиться к одному элементу, нужны два индекса, а для обработки всей таблицы обычно используют два вложенных цикла.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Матрица — прямоугольная таблица элементов, расположенных по строкам и столбцам. Например, в таблице оценок строки могут соответствовать ученикам, а столбцы — предметам. Такое представление удобно, когда каждому значению нужно указать сразу две позиции.

Элемент матрицы — отдельное значение на пересечении строки и столбца. Для его обозначения используют два индекса: первый указывает строку, второй — столбец. Благодаря паре индексов можно точно обратиться к нужному числу, даже если в таблице много элементов.

Размер матрицы — количество её строк и столбцов, которое записывают как m × n. Первое число m показывает количество строк, а второе n — количество столбцов. Эта запись помогает заранее понять, сколько элементов содержится в каждой строке и сколько строк нужно обработать.

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

Как это устроено

В программе матрицу обычно представляют как двумерный массив: внешний уровень содержит строки, а внутри каждой строки лежат её элементы. Поэтому матрица из трёх строк может мыслиться как набор из трёх отдельных массивов. Такая организация соответствует таблице и позволяет хранить данные в том же порядке, в каком их удобно читать. Для матрицы размера m × n в каждой из m строк находится n значений.

Чтобы получить отдельный элемент, нужны два индекса: номер строки и номер столбца. Например, запись с индексами i и j означает значение в строке i и столбце j. Один цикл меняет только один индекс, поэтому сам по себе он перебирает лишь одну строку или один столбец. Два вложенных цикла нужны, чтобы для каждой строки последовательно проверить все её столбцы.

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

Характеристики матрицы можно получать прямо во время обхода, не создавая отдельный список значений. Для суммы сначала задают накопитель со значением 0, а при посещении очередного элемента прибавляют его к накопителю. Для максимума сначала берут один из элементов матрицы как текущий максимум, затем сравнивают с ним каждый следующий элемент. Такой подход работает потому, что после обработки части таблицы в переменной уже хранится результат для просмотренных значений.

У квадратной матрицы главная диагональ проходит от верхнего левого угла к нижнему правому. Её элементами являются значения, у которых индекс строки и индекс столбца совпадают: например, позиции (1, 1), (2, 2) и далее. Поэтому при просмотре матрицы достаточно проверять равенство двух индексов. Остальные элементы пропускают, если задача относится только к диагонали.

Матрица и способы обработки её элементов

Что рассматриваетсяКак определяетсяКак обрабатывается в программе
Размер матрицыКоличество строк и столбцов: m × nВ циклах задают границы перебора строк и столбцов
Элемент матрицыЗначение на пересечении строки и столбцаК нему обращаются по двум индексам
Обход по строкамПо очереди просматриваются строки, внутри каждой — столбцыВнешний цикл меняет строку, внутренний — столбец
Обход по столбцамПо очереди просматриваются столбцы, внутри каждого — строкиВнешний цикл меняет столбец, внутренний — строку
Главная диагональ квадратной матрицыИндексы строки и столбца равныОбрабатывают только элементы, для которых i = j

Используйте таблицу как памятку: сначала определите, какие позиции нужно обработать, а затем выберите порядок изменения индексов. Для всей матрицы подходят два вложенных цикла, а для главной диагонали добавляется проверка равенства индексов. При записи размера всегда сверяйте, что первым указано число строк.

Разбор задач

Вывести матрицу из трёх строк и четырёх столбцов

Условие. Дана матрица из трёх строк и четырёх столбцов. Требуется вывести её элементы в исходном виде. Поскольку важно сохранить форму таблицы, нужно переходить к новой строке вывода после обработки всех четырёх значений очередной строки.

  1. Задаём внешний цикл, который перебирает три строки.
  2. Внутри него задаём цикл по четырём столбцам и выводим элемент по паре индексов текущих строки и столбца.
  3. После завершения внутреннего цикла переходим на новую строку вывода, чтобы значения соседних строк не смешались.

Ответ. Матрица выводится в три строки по четыре элемента. Вложенный порядок циклов сохраняет исходный порядок: сначала элементы первой строки, затем второй и третьей.

Найти сумму и наибольший элемент

Условие. Для заданной матрицы нужно найти сумму всех элементов и наибольшее значение. Чтобы не пропустить ни одного числа, используем полный обход по строкам. Сумму и максимум можно обновлять при посещении каждого элемента.

  1. Перед обходом устанавливаем сумму в 0, а максимум — равным первому элементу матрицы.
  2. Двумя вложенными циклами перебираем все строки и столбцы.
  3. Каждый найденный элемент прибавляем к сумме, а если он больше текущего максимума, заменяем максимум этим элементом.
  4. После завершения циклов выводим накопленную сумму и найденный максимум.

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

Проверить сумму главной диагонали

Условие. В квадратной матрице требуется найти сумму элементов главной диагонали и сравнить её с заданным числом. Сначала нужно отделить диагональные позиции от остальных. Для этого используем условие равенства индексов строки и столбца.

  1. Задаём сумму со значением 0 и начинаем обход матрицы двумя циклами.
  2. Для каждой позиции проверяем, равен ли индекс строки индексу столбца.
  3. Если индексы равны, прибавляем элемент к сумме; если нет, переходим к следующей позиции.
  4. После обхода сравниваем полученную сумму с заданным числом.

Ответ. Сумма диагонали равна заданному числу, если результаты сравнения совпадают. Например, у матрицы размера 3 × 3 учитываются позиции (1, 1), (2, 2) и (3, 3), а остальные пропускаются.

Типичные ошибки

Путать число строк и столбцов. В записи m × n первое число — строки, второе — столбцы, но при чтении записи их иногда меняют местами. Ошибку легко допустить, если ориентироваться только на внешний вид таблицы. Проверь себя по обозначениям циклов: граница перебора строк должна соответствовать m, а столбцов — n.

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

Перепутать индексы строки и столбца. Тогда программа обратится не к той позиции или применит неверные границы циклов. Это часто случается, когда порядок индексов не оговорён заранее. Проверяй запись на маленьком примере: первый индекс должен выбирать строку, второй — элемент в этой строке.

Считать диагональю одинаковые значения. Главная диагональ определяется не равенством самих чисел, а совпадением индексов строки и столбца. Числа на диагонали могут быть разными, а одинаковые числа могут находиться вне её. Для самопроверки запиши несколько координат диагонали: в каждой пара индексов имеет вид (i, i).

Связь с другими темами

Для работы с матрицами пригодятся знания об одномерных массивах, индексах и циклах. Вложенный массив можно представить как набор обычных массивов-строк, а два цикла — как способ перебрать все пары индексов. Если уже понятно, как обрабатывать каждый элемент одномерного массива, нужно лишь добавить выбор строки.

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

Что запомнить

  • Матрица состоит из строк и столбцов.
  • Размер m × n задаёт сначала число строк, затем число столбцов.
  • Для указания элемента матрицы нужны два индекса.
  • Полный обход матрицы обычно выполняют двумя вложенными циклами.
  • В квадратной матрице элементы главной диагонали имеют равные индексы.
  • Сумму и другие характеристики можно вычислять во время обхода матрицы.

Частые вопросы по теме

Чем матрица отличается от обычного массива?

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

Как понять, сколько строк и столбцов в матрице размера 3 × 5?

Первое число показывает количество строк, поэтому их три. Второе число показывает количество столбцов, поэтому столбцов пять.

Почему для перебора всех элементов матрицы нужны два цикла?

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

Как найти элемент, стоящий во второй строке и третьем столбце?

Нужно обратиться к элементу с индексами строки 2 и столбца 3. В языках программирования индексация может начинаться с нуля, поэтому сначала выясни, как именно нумеруются строки и столбцы.

Как определить элементы главной диагонали?

Главная диагональ проходит от верхнего левого угла квадратной матрицы к нижнему правому. В неё входят элементы, у которых индекс строки равен индексу столбца.

Спросить по теме параграфа

§ 67. Матрицы

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.