ЯдроКодаподготовка к экзаменам
Учебная платформа

Загружаем материалы

Подготавливаем материалы и навигацию по разделу.

Циклы в алгоритмах: перебор, инвариант и число шагов

Автор: · Обновлено

Цикл нужен, когда действие повторяется много раз. В школьных задачах циклы применяются для подсчета суммы, поиска максимума, перебора цифр числа, обработки списка оценок, анализа…

Цикл нужен, когда действие повторяется много раз. В школьных задачах циклы применяются для подсчета суммы, поиска максимума, перебора цифр числа, обработки списка оценок, анализа символов строки.

Есть два основных типа циклов. Цикл for удобен, когда заранее известно, сколько раз нужно повторить действие. Цикл while используют, когда повторение зависит от условия.

Цикл for

n = int(input())
total = 0

for _ in range(n):
    value = int(input())
    total += value

print(total)

Эта программа читает n чисел и считает их сумму. Переменная total называется аккумулятором: она постепенно накапливает результат.

Цикл while

number = int(input())
count = 0

while number > 0:
    count += 1
    number //= 10

print(count)

Здесь цикл работает, пока в числе остаются цифры. На каждом шаге программа отбрасывает последнюю цифру целочисленным делением на 10.

Типовые приемы

Для задач школьной информатики важно знать несколько шаблонов: счетчик элементов, сумма, произведение, поиск минимума и максимума, проверка существования элемента, перебор цифр числа, перебор символов строки.

Не пишите цикл сразу на полном наборе данных. Сначала проверьте его на маленьком примере и вручную проследите значения переменных после каждой итерации. Это помогает увидеть бесконечные циклы, пропущенные элементы и неправильные начальные значения.

Практикум: трассировка температур за неделю

Дан список дневных температур -2, 1, 0, 5, 3, -1, 4. Посчитайте сумму, среднее и число положительных дней одним проходом. До написания программы создайте таблицу трассировки со столбцами «текущий элемент», «сумма» и «счётчик». Заполните первые три строки вручную, затем сравните их с диагностическим выводом цикла. Добавьте тест для пустого набора и заранее определите, можно ли в этом случае вычислять среднее. Для варианта с while отдельно докажите, что индекс приближается к условию остановки.

Контрольная точка

Назовите инвариант после обработки первых k температур: что именно уже хранится в сумме и счётчике? Объяснение должно оставаться верным для k = 0, середины списка и момента завершения.

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

Когда выбирать for, а когда while?

for удобен для перебора известной последовательности или заданного числа шагов. while подходит, когда завершение определяется состоянием: правильным вводом, исчерпанием цифр или достижением цели. У while всегда стоит явно проверить изменение условия остановки.

Источники