ЕГЭ · Информатика · в игре

Функции и рекурсия: прокачка кода через игру

Представь, что ты пишешь код для своей любимой игры. Каждая функция — это как спецприём персонажа: вызываешь — и он делает что-то крутое. А рекурсия — это когда приём вызывает сам себя, как бесконечный цикл в мультике про Скуби-Ду, только с выходом.

Функции и рекурсия — база, без которой не обойтись на ЕГЭ и в реальном коде. Но зубрить скучно. Поэтому мы превратили это в игру: XP, уровни, стрики, баттлы с друзьями и персонажи, которые объяснят тему так, что ты сам захочешь решать задачи.

Выбирай наставника, открывай тетрадь (конспект) и начинай прокачку. Первый урок — бесплатно, без карты.

🧑‍🏫
Разберём эту тему вместе

Без карты, без кредитки. Выбери персонажа — учи голосом, побеждай в баттлах.

Что такое функции и рекурсия на пальцах

Функция — это как рецепт пиццы. Ты даёшь ингредиенты (параметры), выполняешь шаги (код), получаешь пиццу (результат). В коде: def make_pizza(toppings): ... return pizza.

Рекурсия — это когда функция вызывает саму себя, но с меньшими данными. Как матрёшка: большая кукла открывается, внутри поменьше, и так до самой маленькой. Пример: посчитать факториал 5! = 5 * 4! — здесь факториал вызывает сам себя с числом на 1 меньше, пока не дойдёт до 1 (базовый случай).

Важно помнить: у рекурсии должен быть выход (базовый случай), иначе программа зависнет. Это как зацикленный сон — если не проснуться, будильник не остановить.

Пример 1
Условие.

Напиши функцию, которая принимает число n и возвращает сумму чисел от 1 до n (без цикла, через рекурсию).

Решение.

def sum_recursive(n):
if n == 0:
return 0
else:
return n + sum_recursive(n-1)
# Вызов: sum_recursive(5) вернёт 15

Выбери своего учителя

Каждый персонаж объясняет тему по-своему. Выбери того, кто тебе ближе:

Барсик-кот: "Мур, функции — это как команды для мышки. Определил def — и кот бежит. Рекурсия — когда кот гонится за своим хвостом, но вовремя останавливается. Мур-мур, попробуй."

Йорик-магистр: "Приветствую, путник. Функция — это заклинание из свитка. def — произносишь имя, передаёшь ману (параметры), получаешь эффект. Рекурсия — заклинание, которое вызывает само себя, пока не сработает контрзаклинание (базовый случай). Да будет код."

Аугмент-3000: "Бип-буп. Функция — модуль программы. Рекурсия — алгоритм с самовызовом. Рекомендую: базовый случай обязателен. Иначе stack overflow. Вычисляю оптимальный путь обучения... Готов."

Тренер 90-х: "Слушай сюда! Функция — это упражнение: принял параметры, сделал подход, вернул результат. Рекурсия — отжимания до отказа, но с выходом по счётчику. Не сдавайся, жми код!"

Бабушка Зинаида: "Ой, внучок, функция — это пирожки: начинку кладёшь (параметры), печёшь (тело), достаёшь (return). Рекурсия — когда пирожок внутри пирожка, как в матрёшке. Главное — не перепеки, а то зависнет."

Баттлы с друзьями

Хочешь проверить, кто круче знает функции? Запускай баттл! Ты получаешь 5 вопросов по теме, таймер на каждый — 30 секунд. После ответов система генерирует ссылку, кидаешь другу. Он отвечает на те же вопросы, и мы сравниваем: кто точнее и быстрее. Победитель получает +100 XP и место в недельном рейтинге.

Баттлы доступны даже на бесплатном тарифе. Можно играть с одноклассниками или случайными соперниками. Рейтинг обновляется каждую неделю — топ-10 получают бонусные ачивки.

Пример вопроса: "Что вернёт вызов функции def f(x): return x*2 при x=5?" Варианты: 5, 10, 25, ошибка. Угадал? Молодец, XP твои!

Не пропускай — стрик сгорит

Каждый день мы даём челлендж на +50 XP. Заходишь, решаешь одну задачку за 2 минуты — и стрик растёт. Если пропустил день — стрик обнуляется, рейтинг падает. Это как в игре: не зашёл — потерял прогресс. Но не переживай: можно восстановить, купив «защиту стрика» за 200 XP из магазина ачивок.

Пример дневного челленджа: "Напиши функцию, которая принимает список чисел и возвращает их сумму. Используй рекурсию." Решил за минуту? +50 XP. Лёгкая победа.

Мини-задача для разминки

Попробуй решить за 2 минуты. Не бойся ошибиться — в тетради можно подсмотреть.

Задача: Напиши функцию greet, которая принимает имя (строку) и возвращает приветствие вида "Привет, {name}!". Вызови её с твоим именем.

Решение:
def greet(name):
return f"Привет, {name}!"
print(greet("Антон")) # Выведет: Привет, Антон!

Всё просто: def — объявление, name — параметр, return — результат. Теперь ты можешь вызывать greet с любым именем.

Частые вопросы

Это бесплатно?
Да, первый урок по любой теме — бесплатно, без привязки карты. После этого можно пользоваться бесплатным тарифом: 1 урок в день, баттлы, тетрадь. Для полного доступа есть Стандарт за 995 руб/мес (30 уроков, все предметы). Сейчас скидка 50% навсегда.
Можно играть с друзьями?
Конечно! Баттлы 1×1: ты создаёшь квиз по теме, кидаешь ссылку другу, и вы соревнуетесь. Победитель получает XP и место в рейтинге. Можно также играть со случайными соперниками.
Что такое XP и уровни?
XP — очки опыта. Их дают за решение задач, баттлы, челленджи и стрики. С каждым уровнем открываются новые ачивки и бонусы. Например, на 5 уровне — доступ к эксклюзивному персонажу.
Можно ли создать своего персонажа?
Пока нет, но у нас 15+ персонажей на выбор: от кота Барсика до тренера 90-х. Каждый учит по-своему. В Премиум-тарифе можно клонировать голос родителя или кумира.
Это безопасно для ребёнка?
Полностью. Мы соблюдаем 152-ФЗ, не передаём данные третьим лицам. Чат модерируется, нет рекламы. Родитель получает отчёты о прогрессе. Есть семейный кабинет.
Как начать?
Перейди на /personas, выбери Барсика или Йорика и начни первый бесплатный урок. Или сразу запусти баттл по теме «Функции» через /battle/new. Удачи!
🧑‍🏫
Разберём эту тему вместе

Без карты, без кредитки. Выбери персонажа — учи голосом, побеждай в баттлах.

Функции и рекурсия в игре: учим informatics с XP и ачивками