Все разделы
Выбрать школу

Школа. Увлечения. Большое будущее.

PROSCHOOLS · ОБРАЗОВАНИЕ РЯДОМ

Ваш город

Выберите город, чтобы находить образование и возможности рядом.

Как учитываем городКаталог и кнопки «Выбрать школу» покажут школы выбранного города.Онлайн-курсы, учебник, ГДЗ и задания к экзаменам доступны по всей России.

Популярные города

Будет выбран: Вся Россия

Учебные материалы останутся прежними.

Поиск по сайту

По всему сайтуШколы выбранного города — выше в результатах

С чего начнём?

↑ ↓ — выбрать результат · Enter — открыть · Esc — закрыть

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

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

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

Клавиатура в компьютерном классе
Иллюстрация к предмету «Информатика»Hmartil · Wikimedia Commons · CC BY-SA 4.0

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

Вложенный цикл — это цикл, расположенный внутри тела другого цикла. Внешний цикл выполняется медленнее: за один его шаг внутренний цикл проходит полностью от начала до конца. Вложенные циклы нужны, прежде всего, для обработки двумерных массивов — таблиц, у которых есть строки и столбцы. Эта тема развивает обычные циклы из программы 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, внутренний цикл по столбцам накапливает значения именно этой строки. Чтобы получить суммы всех строк сразу, такой подсчёт оборачивают во внешний цикл по строкам, а накопитель суммы сбрасывают в начале каждой новой строки.

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

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

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