Перейти к содержанию
MediaSchool

Совместное использование алгоритмических конструкций

§ 16 учебника Котова и Лапо 2025 года: следование, цикл и ветвление в одной программе Робота; вложенные циклы и проверка последней клетки.

Открыт · Презентация · Методичка · Рабочий лист · Другое

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

Робот идёт вдоль коридора и проверяет каждую клетку. Над некоторыми клетками есть стена: такие клетки нужно закрасить. Как соединить движение, повторение и проверку условия, чтобы не пропустить последнюю клетку?

Точные условия, клетки и ответы ниже заданы текстом и схемами. Декоративные иллюстрации показывают идею; схемы с координатами отмечают конкретные клетки.

Что изучаем

Это § 16 «Использование основных алгоритмических конструкций для исполнителя Робот», печатные с. 115–120 учебника В. М. Котова и А. И. Лапо (2025). Следование выполняет команды по порядку. Повторение (цикл) выполняет действия несколько раз, а ветвление выбирает действие по условию. В одном алгоритме эти конструкции можно сочетать.

К концу урока ты сможешь прочитать программу с while и if, составить трассу Робота для заданного поля, объяснить, почему последняя клетка требует отдельной проверки, и отличить цикл внутри ветвления от ветвления внутри цикла.

Ветвление внутри цикла

Рассмотрим авторское поле из двух строк и четырёх столбцов. Робот стоит в нижней строке, в клетке (2, 1). Он может двигаться по нижней строке вправо: на этом пути нет вертикальных стен. Над нижними клетками 1, 3 и 4 стоят перегородки к верхней строке. Поэтому wall_up() истинно именно в этих трёх клетках. Справа от клетки (2, 4) — граница поля.

Столбец нижней строки1234
Сверху стена?данетдада
Справа стена?нетнетнетда

Задача: закрасить клетки нижней строки, над которыми есть стена. Программа:

while not wall_right():
    if wall_up():
        fill_cell()
    move_right()
if wall_up():
    fill_cell()

У if wall_up(): внутри while два отступа перед fill_cell(). Проверка стены выполняется на каждом проходе цикла. move_right() имеет один отступ: движение нужно после каждой проверки, независимо от её ответа. Последний if записан без отступа, на одном уровне с while. Он выполняется после завершения цикла.

Почему отдельно проверяют конец

Предскажи результат до чтения объяснения: когда Робот дошёл до (2, 4), чему равно not wall_right()? Будет ли выполнено тело while в этой клетке?

На (2, 4) справа стена. Значит, not wall_right() ложно. Тело цикла уже не выполняется, и вложенный if не проверяет клетку (2, 4). Вне цикла стоит отдельное ветвление, которое и закрасит её. В результате Робот заканчивает в (2, 4), закрашены (2, 1), (2, 3), (2, 4). Клетка (2, 2) остаётся пустой.

МоментПоложениеЧто происходит
1-й проход(2, 1)сверху стена; закрасить; шаг вправо
2-й проход(2, 2)сверху стены нет; шаг вправо
3-й проход(2, 3)сверху стена; закрасить; шаг вправо
После цикла(2, 4)справа стена; последний if закрашивает клетку

Если начать уже в последней клетке, тело while выполнится ноль раз. Последний if всё равно проверит её. Это полезный тест программы.

Другой порядок сочетания

В § 16, пример 16.2, сначала идёт цикл движения, затем ветвление выбирает направление поворота, а в каждой ветви находится свой цикл. Порядок конструкций зависит от задачи. Ветвление внутри цикла проверяется на каждом проходе. Цикл внутри ветви запускается лишь тогда, когда выбрана эта ветвь. Не путай эти два маршрута.

Вложенным циклом называют цикл внутри другого цикла. В примере 16.3* учебника и на блок-схеме 16.4 это способ повторять целую серию проходов. Звёздочка помечает повышенную сложность. В дополнительной практике есть короткий авторский пример со «змейкой» по полю. Для основной работы достаточно верно проследить цикл с ветвлением и действие после цикла.

Самостоятельная работа

В рабочем листе дано новое поле 2 × 5. Робот стартует в (2, 1); сверху стена только над нижними клетками столбцов 2 и 5. Сверь уже указанные значения условий и заполни трассу. Потом найди закраску и финиш. Отдельное задание проверит старт сразу в последней клетке. Прежде чем открыть ключ, объясни соседу, почему move_right() внутри цикла не зависит от wall_up().

Если застрял, открой отдельную карточку помощи: она разбирает другое поле. Дополнительная практика — резерв после обязательных заданий. В конце выполни личный выходной билет без ключа; учитель соберёт его перед общим разбором. Компьютер не обязателен. При наличии установленной учебной библиотеки pyrob можно проверить собственный прогноз на подготовленной задаче.

Резерв Р2. Вложенные циклы: «змейка»

Попробуй самостоятельно, прежде чем смотреть схему. Поле 5 × 4 без внутренних стен, старт (1, 1). Алгоритм дважды выполняет такую серию: идти вправо до стены; шаг вниз; идти влево до стены; шаг вниз. Внешний повтор содержит два внутренних цикла с предусловием. Сколько проходов выполнит внешний цикл? Сколько всего горизонтальных и вертикальных шагов сделает Робот? Где он закончит движение? Проверь границы каждого шага.

Проверь после собственной попытки Р2

Схема показывает весь маршрут и ответы. Сначала запиши собственные числа и координаты финиша, затем сравни их со схемой.

Проверь себя по учебнику

На с. 118 вопросы 1–3 просят назвать базовые конструкции, различить команды управления и привести примеры. Вопрос 4* спрашивает о вложенном цикле. В упражнениях 1–2, с. 118–119, нужно узнать конструкции и найти ошибку в программе. Упражнения 3–6, с. 119–120, развивают составление программ и включают задачи повышенной сложности. Читай условия и рисунки в самом учебнике: мы не перепечатываем их.

Итог

  • Команды могут идти по порядку, повторяться и выбираться по условию в одной программе.
  • Отступ показывает, какая команда находится внутри цикла или ветви.
  • while с проверкой «справа свободно» не обрабатывает конечную клетку своим телом; действие после цикла может это исправить.
  • Трассу проверяют для конкретной обстановки и отдельно испытывают старт с нулём повторов.

Домашняя работа: прочитай § 16, ответь на вопросы 1–3 с. 118; по желанию 4*. Выполни отдельную домашнюю карточку с новым расположением стен.

Самопроверка

Проверь себя

10 вопросов по теме «Совместное использование алгоритмических конструкций». Выбери ответ, прочитай объяснение и попробуй ещё раз, если ошибся.

Открыть отдельно

Вопрос 1 из 10

Тренировка
В теле while not wall_right() сначала стоит if wall_up() с закраской в его ветви, затем безусловный шаг вправо. Какие управляющие конструкции здесь сочетаются?

Без отметки и ограничения времени. Первый ответ учитывается отдельно от исправлений. При обновлении страницы ответы сбросятся.

Скачать и открыть

Материалы урока

10 материалов

Подготовка к уроку

3 материала

Рабочие листы и практика

5 материалов

Проверка знаний

1 материал

Дополнительные материалы

1 материал

От сообщества

Материалы сообщества0

Дополнения от учителей к этому уроку. Проверены модерацией, но не являются редакционным контентом MediaSchool.

Поделиться материалом

Поделитесь первым материалом

Рабочий лист, презентация или методичка помогут другим учителям подготовиться к уроку.

Комментарии

Войдите, чтобы оставлять комментарии.

Пока нет комментариев. Будьте первым!