Тема 5 · Информатика
Подпрограммы и рекурсия
Вспомогательные алгоритмы и функции на Питоне, параметры и локальные переменные, рекурсивные функции, деревья вызовов и число вызовов. 100 заданий на отработку.
Простыми словами
Подпрограмма — это готовый рецепт с названием. Повар не расписывает каждый раз, как варить бульон, а пишет «сварить бульон» — и рецепт выполняется. Рекурсия — рецепт, который ссылается сам на себя: «чтобы разобрать матрёшку, открой её и разбери ту, что внутри».
def f(a, b): c = a + b return c * 8
— параметры; при вызове f(17, 3) в них подставляются аргументы 17 и 3. return завершает функцию и отдаёт результат: .
Всё, что записано после сработавшего return, не выполняется. Переменная c локальная: снаружи функции её нет, и её изменение не влияет на одноимённую переменную вне функции.
Композиция функций
В записи g(f(x)) сначала вычисляется внутренняя функция, её результат становится аргументом внешней.
def f(a): return a * 2def g(b): return b - 4x = 22; print(g(f(x)))
- .
- .
Читайте вызовы изнутри наружу, как скобки в математике: — «сначала , потом ».
Рекурсия
if n <= 1: return 1).return 2 * F(n - 1) + 1).Без базы вызовы вкладываются бесконечно, пока не переполнится стек вызовов (в Python — ошибка RecursionError).
def F(n): if n <= 1: return 1 return 2 * F(n - 1) + 1
Найдём .
- Спускаемся до базы: .
- Поднимаемся снизу вверх: , , , .
F(n) = F(n - 1) + n * n, . Тогда .
Удобно заполнять таблицу от базы вверх: — так не нужно держать в голове цепочку вызовов.
Дерево вызовов и число вызовов
Если функция вызывает себя дважды, вызовы ветвятся. Число узлов дерева вызовов — общее число вызовов функции.
, , — совпадает с деревом.
Не забывайте «» — сам вызов тоже считается. А в вопросе «сколько раз вызвана » считают только узлы F(2): здесь их 3.
Где это пригодится: ЕГЭ — 1 заданиеЗадания экзамена 11 класса, которые опираются на этот материал — нажмите, чтобы раскрыть список
Готовые работы по теме
Собраны заранее — одним нажатием: распечатать с ключом, раздать ученикам ссылкой или QR-кодом, поменять настройки. Номер набора постоянный: по этой ссылке всегда та же работа.
теория этой темы, 8 заданий по подтемам и ключ — файлом DOCX, который можно править под себя.
Прохождение онлайн
Имя ученика никуда не отправляется: он вводит только номер по списку, а таблицу «номер → фамилия» видите только вы.
Классы, выданные работы и результаты учеников по кодам — в журнале учителя: без регистрации, хранится только на этом компьютере.