P
pro·school.ru
Каталог школ

Вложенные циклы и двумерные массивы

💻 Информатика · 9 класс

Вложенные циклы и двумерные массивы

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

Двумерный массив

Если обычный (одномерный) массив — это строка ячеек, то двумерный массив — это прямоугольная таблица. Чтобы обратиться к ячейке, указывают сразу два индекса: номер строки и номер столбца, например a[i][j]. Первый индекс выбирает строку, второй — столбец внутри этой строки.

столбец 1столбец 2столбец 3
строка 1a[1][1]a[1][2]a[1][3]
строка 2a[2][1]a[2][2]a[2][3]

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

Обход таблицы

Чтобы пройти все ячейки таблицы, внешний цикл перебирает строки, а внутренний — столбцы внутри каждой строки:

для i от 1 до строк:

  для j от 1 до столбцов:

    обработать a[i][j]

Если в таблице 2 строки и 3 столбца, то внутренний цикл выполнится 2 * 3 = 6 раз — по разу на каждую ячейку. Сначала обрабатывается вся первая строка, затем вся вторая.

Типичные задачи

На двумерных массивах решают много задач:

  • найти сумму всех элементов таблицы;
  • посчитать сумму каждой строки или каждого столбца;
  • найти максимум во всей таблице или в отдельной строке;
  • посчитать элементы с нужным свойством, например положительные;
  • найти элементы на главной диагонали, где номер строки равен номеру столбца.

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

Частые ошибки. Легко перепутать порядок индексов: первый — это строка, второй — столбец. Ещё одна частая ошибка — обнулять накопитель суммы строки не в том месте: его нужно сбрасывать перед каждой новой строкой, внутри внешнего цикла, но до внутреннего. Если сбросить его раньше или позже, суммы строк сольются в одну или потеряются.

Кратко о главном

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