Восьмой класс открывается повторением и переходом к большим программам: задачу делят на части, каждую часть оформляют функцией с понятным интерфейсом и описанием. Рекурсия — функция, вызывающая саму себя, — позволяет коротко записать факториал, сумму цифр и рисунок фрактала, но требует точно понимать, когда рекурсия остановится.
Этапы создания программы и методы проектирования «сверху вниз» и «снизу вверх». Интерфейс и реализация функции, документирующая строка. Различие процедуры и функции, оператор return и значение None. Логические функции, возвращающие True или False. Рекурсивные функции: базовый случай, приближение к нему, глубина рекурсии и RecursionError. Порядок вызовов и возвратов. Числа Фибоначчи, сумма цифр, рекурсивные фракталы — дерево и снежинка Коха.
Пятнадцать заданий: вычислить результат рекурсивной функции, расставить вызовы и возвраты в порядке выполнения, разделить подпрограммы на функции и процедуры, вставить пропуски в определение рекурсии, сосчитать ветви фрактального дерева и отрезки снежинки Коха, выбрать верные утверждения о функциях.
В пояснениях разобрано, почему функция без return возвращает None, почему print внутри функции не заменяет return, в каком порядке печатает числа функция, у которой вывод стоит после рекурсивного вызова, и как растёт число элементов фрактала с каждым уровнем.
Работа рассчитана на первые восемь часов 8 класса. Рекурсия понадобится дальше в рекурсивном переборе строк, быстрой сортировке и обходе деревьев в 9 классе, поэтому трудности с базовым случаем лучше заметить сейчас. В восьмом классе курс «Программирование» ведётся на двух языках: первое полугодие продолжает Python, второе вводит C++, на котором пишут олимпиадные решения и программы для микроконтроллеров. Темы повторяются на обоих языках намеренно — так ученик видит, что алгоритм не зависит от синтаксиса. Эта работа — первая из 6 по курсу.
Работа доступна и на компьютере, и на мобильном телефоне: интерфейс сам подстраивается под размер экрана. Учитель может задать период, в течение которого доступен тест, поэтому его допустимо выполнять и дома. Для защиты от подсказок отслеживается, покидал ли ученик вкладку с тестом ради других вкладок или приложений.
Краткая шпаргалка по теме курса: понятия, правила и примеры, типичные ошибки. Заданий этой работы в ней нет — только материал, который она проверяет.
Шпаргалка: Python: функции, рекурсия и фракталы — курс «Программирование: Python и C++», 8 класс →Что выведет программа?
def is_even(n):
return n % 2 == 0
print(is_even(7))Какое число выведет программа?
def f(n):
if n <= 1:
return 1
return n * f(n - 1)
print(f(5))Эта работа открывается в кабинете родителя: ребёнок проходит её с телефона или компьютера, вы видите баллы, разбор каждой ошибки и то, какие темы просели. Разовая оплата, доступ навсегда. Первый тест — бесплатно.
Купить для ребёнка — 190 ₽ Что такое кабинет родителяДля учителей и репетиторов, работающих с учениками вне школы. Разовая оплата, доступ навсегда — без подписки. Проведение с любого устройства: участники заходят по ссылке или QR-коду, регистрация не нужна. Результат и разбор ошибок — сразу после работы.
Купить тест — 390 ₽ Оферта и реквизитыДля всей школы — подключить организацию по лицензии →
Чтобы добавить тест в базу и провести диагностику — подключите школу к ЗнаниоМетр. Тест станет вашей редактируемой копией: правьте вопросы, баллы и запускайте сессии.
Посмотреть в демоРеальные экраны прохождения в ЗнаниоМетр: на компьютере, на смартфоне и версия для печати (PDF).