Назад к темам

Результат работы алгоритма с циклами

Тренироваться
1

Результат работы алгоритма с циклами

Зачем это в ЕГЭ. Задание №6 проверяет умение анализировать работу алгоритмов с циклами и условиями. Даёт 1 первичный балл. Встречается в каждом варианте, часто содержит рекурсивные вызовы или вложенные циклы.

Главная идея. Нужно «прошагать» алгоритм, фиксируя изменения переменных на каждом шаге. Ключ — ведение таблицы значений для всех переменных при каждом проходе цикла или рекурсивном вызове.

Алгоритм (чеклист).
1. Выписать начальные значения всех переменных.
2. Для каждого шага цикла/рекурсии:
- Проверить условие продолжения.
- Вычислить новые значения переменных.
- Зафиксировать изменения в таблице.
3. Проверить граничные случаи (например, n=0n=0 или n=1n=1).
4. Сверить итоговые значения с вариантами ответа.

Опоры (кратко).
- Рекурсия: f(n)=f(n1)+...f(n) = f(n-1) + ...
- Цикл while: выполняется пока условие истинно.
- Инвариант цикла: выражение, сохраняющее истинность на каждой итерации.

Пример 1 (цикл while).
Дано:

pythons = 0
k = 1
while k < 5:
    s += k
    k += 2
*Шаг 1.* Начальные значения: $s=0$, $k=1$.  
*Шаг 2.* Первая итерация: $k=1<5$ → $s=0+1=1$, $k=1+2=3$.  
*Шаг 3.* Вторая итерация: $k=3<5$ → $s=1+3=4$, $k=3+2=5$.  
*Шаг 4.* Проверка: $k=5 \nless 5$ → цикл завершён.  
Ответ: $s=4$.

**Пример 2 (рекурсия).**  
Дано:  

python
def F(n):
if n > 0:
return F(n-1) + 2
else:
return 0
Шаг 1. Базовый случай: F(0)=0F(0)=0.
Шаг 2. F(1)=F(0)+2=0+2=2F(1)=F(0)+2=0+2=2.
Шаг 3. F(2)=F(1)+2=2+2=4F(2)=F(1)+2=2+2=4.
Ответ для F(2)F(2): 44.

Типичные ошибки.
1. Пропуск итерации — не учтено изменение счётчика после проверки условия.
2. Неправильный базовый случай — ошибка в терминальном условии рекурсии.
3. Путаница с индексами — например, начальное значение k=0k=0 вместо k=1k=1.
4. Игнорирование переполнения — не проверено, может ли переменная выйти за границы типа.

Дальше. Разбери задачи с вложенными циклами и рекурсивными деревьями вызовов.

Теория изучена?

Закрепи знания на практике — переходи к тренировке!

Тренироваться