Подпрограммы для исполнителя Робот
§ 12.4 учебника Котова и Лапо 2025 года: вспомогательный алгоритм, описание функции, вызов и проверка результата на поле Робота. Самостоятельная практика, шесть авторских иллюстраций и отдельные материалы.
Сначала — короткое объяснение
Подпрограммы для Робота: один код — два узора
Описание и вызов подпрограммы в Python, двоеточие и отступы. Два узора на клетчатом поле: проверяем каждую команду, начало следующего вызова и место остановки. Разбираем структуру программы и пример 12.12 учебника. Самопроверка с паузой 12 секунд. Авторская учебная анимация; 7 минут 49 секунд. К § 12.4 учебника для 7 класса РБ, урок 14.
Конспект урока
На поле Робота часто встречается знакомая часть задачи. Если последовательность команд нужна несколько раз, ей можно дать имя. Тогда основной алгоритм обращается к ней по имени.
Иллюстрации помогают представить задачу. Точные клетки, команды и ответы заданы текстом и схемами ниже.
Что изучаем
По § 12.4, с. 86–88 учебника В. М. Котова и А. И. Лапо (2025) научимся выделять повторяющуюся часть пути в вспомогательный алгоритм, описывать её как функцию и проверять каждый вызов. Это продолжение работы с исполнителем Робот и конструкцией следование.
К концу занятия ты сможешь составить основную программу из вызовов помощника и команд перехода, а затем доказать, что Робот закрасил нужные клетки и закончил в нужном месте.
Вспомогательный алгоритм нужен для знакомого действия
В примере 12.11 учебника Робот дважды выполняет одну и ту же последовательность, закрашивая квадрат из четырёх клеток. Её оформляют как вспомогательный алгоритм kvadrat(). Основной алгоритм становится короче: вызвать помощник, перейти к следующей части поля, вызвать помощник ещё раз. Команды внутри помощника от этого не исчезают: они исполняются при каждом вызове.
Описание сообщает, что делает функция; вызов запускает её в текущем положении Робота. Одного описания без вызова недостаточно. После вызова Робот остаётся там, куда его привели команды помощника. Поэтому перед повторным вызовом нужно знать не только начальную, но и конечную клетку.
Разобранный пример: два столбца
Возьмём открытое поле 2 строки × 3 столбца без внутренних стен. Робот начинает в верхней левой клетке (1, 1). Координаты здесь записываем как (строка, столбец). Нужно закрасить оба ряда в столбцах 1 и 3, закончить в клетке (1, 3). Клетки второго столбца остаются пустыми.
| Строка / столбец | 1 | 2 | 3 |
|---|---|---|---|
| 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 материала· для учителей
23 слайда по § 12.4: вспомогательный алгоритм, описание, вызов, проверка положения Робота и личная практика.
Презентация · MediaSchool
45 минут с паузой, маршрутом без принтера, критериями, помощью и полной проверкой после урока.
Методичка · MediaSchool
Все промежуточные клетки, билет, дополнительная практика и диагностика.
Методичка · MediaSchool
Рабочие листы и практика
5 материалов· для учеников
Личное поле 3×4, новый горизонтальный помощник, два вызова, переход и проверка четырёх клеток.
Рабочий лист · MediaSchool
Другой малый пример без готового ответа рабочего листа.
Рабочий лист · MediaSchool
Горизонтальная пара, обход стены и сравнение конечных клеток.
Рабочий лист · MediaSchool
Б1–Б3: описание и вызов, короткая трасса и два случая применения.
Рабочий лист · MediaSchool
Свое поле 2×4, старт, финиш, помощник и два вызова.
Рабочий лист · MediaSchool
Проверка знаний
1 материал· для учеников
10 вопросов с объяснениями и повторной попыткой.
Проверочная
Дополнительные материалы
1 материал· для учеников
Необязательная структура вложенной функции для локального pyrob после бумажной попытки.
Другое · MediaSchool
От сообщества
Материалы сообщества0
Дополнения от учителей к этому уроку. Проверены модерацией, но не являются редакционным контентом MediaSchool.
Поделитесь первым материалом
Рабочий лист, презентация или методичка помогут другим учителям подготовиться к уроку.
Комментарии
Войдите, чтобы оставлять комментарии.
Пока нет комментариев. Будьте первым!