Вспомогательные алгоритмы
§ 11.4 учебника Котова и Лапо 2025 года: подзадача, описание и вызов функции, повторное использование команд Черепахи. Личная трасса, авторские иллюстрации и материалы для печати.
Сначала — короткое объяснение
Вспомогательные алгоритмы — видеоразбор
Подзадача и вспомогательный алгоритм; описание функции в Python (def, двоеточие, отступ) и вызов по имени со скобками; каждый вызов продолжает с текущего места Черепахи; основной алгоритм из вызовов; вложение подзадач в примере 11.8 и роль параметров. Самопроверка с паузой 12 секунд. Субтитры в кадре; 4 минуты 35 секунд. К п. 11.4 учебника для 7 класса РБ.
Конспект урока
Ты хочешь нарисовать три одинаковых флажка. Можно трижды записать все команды рисования. Удобнее один раз назвать эту часть работы и затем трижды обратиться к ней.
Иллюстрации помогают представить идею. Точные команды и ответы даны текстом.
Чему научимся
По § 11.4 учебника В. М. Котова и А. И. Лапо (2025), с. 74–76, ты научишься выделять повторяющуюся подзадачу, отличать описание функции от её вызова, читать простую программу Черепахи и предсказывать результат двух вызовов. Это продолжение урока о следовании: команды по-прежнему выполняются по порядку.
К концу занятия ты запишешь короткий вспомогательный алгоритм и объяснишь, зачем его вызывать в основном алгоритме.
Подзадача внутри большой задачи
Вспомогательный алгоритм — алгоритм, целиком используемый в составе другого алгоритма. Он решает подзадачу основной задачи. Например, большая задача — нарисовать ряд одинаковых элементов; подзадача — нарисовать один элемент.
Вызов вспомогательного алгоритма позволяет заменить несколько команд одной записью. Если рисунок одного элемента нужно изменить, правят его описание в одном месте. Мы составляем функцию из уже понятных Черепахе команд и вызываем её по имени.
В Python: описание и вызов
В учебнике вспомогательный алгоритм записывается в виде функции. Заголовок начинается словом def, затем идут имя и круглые скобки, а команды тела пишутся с отступом.
import turtle
def ugol():
turtle.forward(40)
turtle.right(90)
turtle.forward(20)
turtle.left(90)
ugol()
ugol()
Строки от def ugol(): до последней команды с отступом описывают, что делать. При чтении определения Черепаха ещё не рисует. Первая строка ugol() без отступа вызывает функцию: Черепаха выполнит четыре команды её тела. Вторая строка ugol() выполнит те же четыре команды ещё раз.
Не забывай двоеточие после заголовка, одинаковый отступ команд тела и круглые скобки при вызове. Имя ugol мы определили сами, а turtle.forward уже предоставлено модулем turtle.
Проследим два вызова
Договоримся: стартовая точка (0, 0), взгляд вправо, перо опущено; x растёт вправо, y — вверх. Каждый вызов ugol() сдвигает Черепаху на 40 вправо и 20 вниз, возвращая взгляд вправо.
| Этап | Точка после этапа | Взгляд |
|---|---|---|
| До вызовов | (0, 0) | вправо |
После первого ugol() | (40, −20) | вправо |
После второго ugol() | (80, −40) | вправо |
Два вызова дают четыре видимых отрезка: вправо, вниз, вправо, вниз. Повороты сами по себе отрезков не добавляют. Иллюстрация передаёт повторение модуля, а координаты определяются таблицей.
Проверь себя: что изменится, если удалить второй вызов? Запиши прогноз на бумаге. Вернись к нему после следующего раздела.
Как читать пример учебника
В примере 11.8 учебника один рисунок составлен из одинаковых частей. Функция chast() рисует часть; figura(x, y, c) четыре раза вызывает chast(), а основной алгоритм трижды вызывает figura для разных мест и цветов. Функция p(x, y) готовит начальную позицию. Получается вложение подзадач: часть → фигура → весь рисунок.
Буквы x, y, c в заголовке учебникового примера — параметры: при вызове им передают координаты и цвет. На этом занятии достаточно уметь читать их роль. В личной работе ты составишь функцию без параметров, как ugol().
Проверка прогноза
Если оставить только один вызов функции ugol(), появится первая пара отрезков; конечная точка будет (40, −20), взгляд — вправо. Сравни с записью, которую сделал до чтения ответа.
Частая ошибка: «определил — значит нарисовал»
def znak():
turtle.forward(30)
# Здесь вызова пока нет.
После определения никакой линии нет. Она появится только после строки znak(), если перо опущено. Ещё одна ошибка — забыть отступ перед turtle.forward(30): тогда команда не будет телом функции, а Python сообщит об ошибке записи.
Твоя работа
Открой отдельный рабочий лист в материалах урока. Сначала подчеркни определение функции и обведи её вызовы. Затем сам проследи два вызова новой функции stupenka() и запиши функцию для своей подзадачи. Компьютер для основного задания не нужен. Если застрял, после собственной попытки возьми карточку помощи. Для быстрого темпа есть отдельная дополнительная практика.
Бумажный выходной билет заполняется отдельно. Он показывает, различаешь ли ты описание и вызов и можешь ли предсказать короткую трассу. Сначала запиши свой ответ, затем сравни с короткой сверкой, отметь одну правку с причиной и сдай билет. Если нет распечатки, учитель даст тот же код на доске: запиши только Б1–Б3 в тетради, не переписывая весь код. Python-заготовка доступна для необязательной проверки на подготовленном школьном компьютере.
Вопросы учебника
На с. 76 после § 11 помещены семь вопросов. Сегодня ответь на вопросы 5–7:
- Какие алгоритмы называют вспомогательными? Назови подзадачу в собственном примере.
- Для чего нужны вспомогательные алгоритмы? Объясни пользу, если одинаковый фрагмент требуется несколько раз.
- Как описывается вспомогательный алгоритм на языке Python? Покажи заголовок, отступы тела и отдельную строку вызова.
Вопросы 1–4 относятся к предыдущему уроку. Упражнение 1б на с. 77 с четырьмя вызовами chast() оставь для домашней проверки или резерва: сначала предскажи рисунок в тетради, а затем сравни с выполнением программы при доступном Python.
Итог и домашняя работа
Функцию описывают один раз, а вызывают там, где нужна её подзадача. Каждый вызов выполняет команды тела заново. Следи за начальным состоянием Черепахи и за тем, куда она смотрит после каждого вызова.
Домашняя работа: § 11.4, вопросы 5–7 на с. 76. Придумай рисунок из двух одинаковых частей; запиши старт, описание функции без параметров и два вызова. Рядом предскажи конечную точку или объясни словами положение Черепахи. Цикл пока не требуется.
10 вопросов по теме «Вспомогательные алгоритмы». Выбери ответ, прочитай объяснение и попробуй ещё раз, если ошибся.
Открыть отдельноВопрос 1 из 10
ТренировкаБез отметки и ограничения времени. Первый ответ учитывается отдельно от исправлений. При обновлении страницы ответы сбросятся.
Скачать и открыть
Материалы урока
9 материаловПодготовка к уроку
3 материала· для учителей
23 слайда по § 11.4: подзадача, описание и вызов функции, повторение фрагмента Черепахой.
Презентация · MediaSchool
45 минут с паузой, маршрутом без принтера, личной трассой, билетом и диагностикой.
Методичка · MediaSchool
Полная трасса, билет, дополнительная практика и разбор ошибок.
Методичка · MediaSchool
Рабочие листы и практика
4 материала· для учеников
Аннотация кода, трасса двух вызовов и собственная функция.
Рабочий лист · MediaSchool
Опора после собственной попытки без ответов рабочего листа.
Рабочий лист · MediaSchool
Исправление записи функции, вложенный вызов и сокращение повтора.
Рабочий лист · MediaSchool
Б1–Б3: определение, два вызова и конечная точка.
Рабочий лист · MediaSchool
Проверка знаний
1 материал· для учеников
10 вопросов с объяснениями и повторной попыткой.
Проверочная
Дополнительные материалы
1 материал· для учеников
Необязательная проверка двух вызовов функции в Python turtle.
Другое · MediaSchool
От сообщества
Материалы сообщества0
Дополнения от учителей к этому уроку. Проверены модерацией, но не являются редакционным контентом MediaSchool.
Поделитесь первым материалом
Рабочий лист, презентация или методичка помогут другим учителям подготовиться к уроку.
Комментарии
Войдите, чтобы оставлять комментарии.
Пока нет комментариев. Будьте первым!