№1 · ОСНОВА РЕКУРСИИ
1. Условие остановки
Выберите верное утверждение о базовом случае рекурсивной функции.
Ф.И.
Класс
Разберёмся, как функция вызывает саму себя, и научимся прослеживать рекурсивные алгоритмы от простых случаев до нестандартных решений.
№1 · ОСНОВА РЕКУРСИИ
Выберите верное утверждение о базовом случае рекурсивной функции.
№2 · ВЫЗОВЫ ФУНКЦИИ
Что происходит при выполнении рекурсивного вызова внутри функции?
№3 · СТРУКТУРА ФУНКЦИИ
Заполните пропуски в описании рекурсивной функции.
Рекурсивная функция должна содержать условие остановки и вызов функции с изменёнными .
№4 · ТРАССИРОВКА
Рассмотрите код:
```python
def f(n):
if n == 0:
return
print(n)
f(n - 1)
```
Сколько чисел напечатает вызов `f(3)`? Запишите только число.
№5 · СОПОСТАВЛЕНИЕ
Соедините каждую задачу с подходящим базовым случаем рекурсии. Каждый вариант справа используется один раз.
№6 · РЕКУРСИВНЫЕ ВЫЧИСЛЕНИЯ
Дана функция:
```python
def fact(n):
if n == 0:
return 1
return n * fact(n - 1)
```
Вычислите значение выражения `fact(4)`. Запишите решение по шагам и итоговый ответ.
+5 заданий в этом листе
Зарегистрируйтесь — и соберите свой рабочий лист по этой теме за минуту: заданий столько, сколько нужно.
№7 · НАЙДИ ЛИШНЕЕ
Найдите лишний фрагмент. Три фрагмента уменьшают задачу и могут привести к базовому случаю, а один фрагмент не гарантирует завершение рекурсии. Критерий для проверки дан только учителю.
№8 · ПОРЯДОК ВЫВОДА
Определите истинность утверждений по коду:
```python
def f(n):
if n == 0:
return
print("до", n)
f(n - 1)
print("после", n)
```
Рассуждайте о порядке выполнения команд.
№9 · РЕКУРСИЯ ПО СТРОКЕ
Заполните пропуски в рекурсивной функции, которая проверяет, читается ли строка одинаково слева направо и справа налево.
def is_palindrome(s):
if len(s) <= 1:
return True
if s[0] != s[-1]:
return False
return is_palindrome(s[:-])
№10 · РЕКУРСИВНЫЙ АЛГОРИТМ
В отсортированном списке `a = [2, 5, 8, 12, 16, 21, 25]` рекурсивная функция двоичного поиска получает границы `left = 0`, `right = 6` и ищет число `16`.
На каждом шаге она вычисляет `mid = (left + right) // 2`. Если `a[mid]` меньше искомого числа, поиск продолжается справа; если больше — слева; если равен — функция возвращает индекс.
Запишите последовательность значений `mid`, проверенных до нахождения числа `16`, и итоговый индекс.
Создайте уникальный лист по своей теме
Зарегистрируйтесь бесплатно — лист сохранится в личном кабинете, откуда его можно скачать в PDF и распечатать.
В листе 10 заданий: множественный выбор, истина / Ложь, заполни пропуски, краткий ответ, соединение, реши задачу, найти лишнее.
Да, задания ориентированы на школьную программу по информатике для 10 класса по ФГОС.
Да. После регистрации лист открывается в конструкторе: задания можно заменить, перегенерировать или добавить новые.