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

Подпрограммы для исполнителя Робот

§ 12.4 учебника Котова и Лапо 2025 года: вспомогательный алгоритм, описание функции, вызов и проверка результата на поле Робота. Самостоятельная практика, шесть авторских иллюстраций и отдельные материалы.

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

Сначала — короткое объяснение

Подпрограммы для Робота: один код — два узора

Описание и вызов подпрограммы в Python, двоеточие и отступы. Два узора на клетчатом поле: проверяем каждую команду, начало следующего вызова и место остановки. Разбираем структуру программы и пример 12.12 учебника. Самопроверка с паузой 12 секунд. Авторская учебная анимация; 7 минут 49 секунд. К § 12.4 учебника для 7 класса РБ, урок 14.

На YouTube

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

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

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

Что изучаем

По § 12.4, с. 86–88 учебника В. М. Котова и А. И. Лапо (2025) научимся выделять повторяющуюся часть пути в вспомогательный алгоритм, описывать её как функцию и проверять каждый вызов. Это продолжение работы с исполнителем Робот и конструкцией следование.

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

Вспомогательный алгоритм нужен для знакомого действия

В примере 12.11 учебника Робот дважды выполняет одну и ту же последовательность, закрашивая квадрат из четырёх клеток. Её оформляют как вспомогательный алгоритм kvadrat(). Основной алгоритм становится короче: вызвать помощник, перейти к следующей части поля, вызвать помощник ещё раз. Команды внутри помощника от этого не исчезают: они исполняются при каждом вызове.

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

Разобранный пример: два столбца

Возьмём открытое поле 2 строки × 3 столбца без внутренних стен. Робот начинает в верхней левой клетке (1, 1). Координаты здесь записываем как (строка, столбец). Нужно закрасить оба ряда в столбцах 1 и 3, закончить в клетке (1, 3). Клетки второго столбца остаются пустыми.

Строка / столбец123
1 (верхняя)старт, закраситьоставитьфиниш, закрасить
2 (нижняя)закраситьоставитьзакрасить

Повторяющееся действие stolbik() закрашивает две клетки одного столбца и возвращает Робота в верхнюю клетку этого же столбца:

def stolbik():
    fill_cell()
    move_down()
    fill_cell()
    move_up()

После первого вызова Робот в (1, 1), обе клетки столбца 1 закрашены. Команда move_right(2) переводит его через пустой столбец 2 в (1, 3); второй вызов закрашивает столбец 3 и снова заканчивает в его верхней клетке. Все переходы допустимы, потому что между этими клетками нет стен.

from pyrob.api import *

@task
def zadacha():
    def stolbik():
        fill_cell()
        move_down()
        fill_cell()
        move_up()

    stolbik()
    move_right(2)
    stolbik()

run_tasks()

Здесь zadacha — условное имя для объяснения структуры. В задачнике имя функции под @task должно совпадать с именем выбранной задачи, например prim_12_11. Вложенная функция stolbik имеет больший отступ; вызовы внутри zadacha стоят на том же уровне, что и её другие команды.

Разные задачи — разные помощники

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

Это образ двух частей одной задачи. Обе части последовательно выполняет один Робот; клетки иллюстрации не задают точный путь.

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

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

Возьми отдельный рабочий лист. Тебе предстоит придумать нового помощника, которого нет в разобранном примере: он закрашивает две соседние клетки одного ряда и возвращает Робота в левую из них. Поле теперь 3 строки × 4 столбца, старт (1, 1), внутренних стен нет. Закрась клетки (1, 1), (1, 2), (3, 1), (3, 2), остальные оставь пустыми и закончи в (3, 1). Сам выбери четыре команды нового помощника, затем запиши два вызова и переход между ними. Не открывай ключ до собственной попытки.

Если трудно, возьми карточку помощи: она показывает проверку маленького другого поля, но не готовую программу рабочего листа. Если закончил раньше, реши дополнительную практику: там другой помощник, который меняет конечное положение. На последних минутах заполни отдельный выходной билет; учитель увидит, что ты понял лично.

Как проверить программу

Проверяй три условия: (1) каждая нужная клетка закрашена; (2) лишние клетки не закрашены; (3) Робот закончил в указанной клетке. Отдельно проследи каждый переход: стена и край поля делают команду движения недопустимой. Закрашивание уже закрашенной клетки ошибку исполнителя не вызывает, но не заменяет проверку задания.

Вопросы учебника

После § 12 на с. 89 ответь на вопрос 5: в каких случаях полезно использовать вспомогательные алгоритмы? Объясни оба случая на собственном примере: повторяемая часть и самостоятельная часть большой задачи. Вопросы 1–4 служат повторению § 12.1–12.3. На с. 90, упражнение 6 учебник предлагает переписать повторённый алгоритм через вспомогательный; попробуй это после нашей практики. Формулировки и рисунки учебника остаются в самом учебнике — здесь задания авторские.

Итог

  • Вспомогательный алгоритм получает имя и список команд.
  • Команды исполняются при вызове, а не при одном только описании.
  • Перед повторным вызовом проверяй, где Робот оказался после первого.
  • Правильный результат включает закрашенные клетки, отсутствие лишней закраски и финиш.

Домашняя работа: прочитай § 12.4, ответь на вопрос 5 с. 89 и на отдельной карточке придумай своё поле 2 × 4 без внутренних стен с двумя одинаковыми частями. Запиши старт, нужные клетки, финиш, помощник и два вызова. Проверь конечное положение после каждого вызова.

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

Проверь себя

10 вопросов по теме «Подпрограммы для исполнителя Робот». Выбери ответ, прочитай объяснение и попробуй ещё раз, если ошибся.

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

Вопрос 1 из 10

Тренировка
Для Робота дважды нужен одинаковый обход стены с закраской. Какое решение соответствует применению подпрограммы?

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

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

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

10 материалов

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

3 материала

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

5 материалов

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

1 материал

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

1 материал

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

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

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

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

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

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

Комментарии

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

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