- Узнавать три вида циклов и читать их блок-схемы
- Выполнять цикл по шагам с таблицей трассировки: сумма, произведение, количество, максимум, цифры
- Находить число повторений через неравенство и выполнять два цикла подряд
- Находить начальные значения и наибольшие входные значения по результату
Учителю нужно сложить баллы 30 учеников. Вместо того чтобы 30 раз писать «прибавь следующий балл к сумме», достаточно написать это один раз и сказать «повтори 30 раз». Алгоритм с повторяющимися шагами — циклический. На вступительных экзаменах 2025–2026 годов циклы были самой частой темой: задания по Python с пометкой «Оператор цикла», а также задания с блок-схемами на число повторений, два цикла подряд и обратные вопросы вида «какое значение нужно ввести, чтобы…». В этом уроке вы научитесь читать циклы в блок-схемах и безошибочно выполнять их с помощью таблицы трассировки.
Цикл и его виды
Алгоритм, в котором группа команд повторяется несколько раз, называется циклическим. Повторяющиеся команды образуют тело цикла, а однократное выполнение тела — это итерация (один шаг цикла).
- Цикл со счётчиком (с параметром) — число повторений известно заранее: переменная цикла меняется от начального значения до конечного с заданным шагом. В Python:
for i in range(1, 11). - Цикл с предусловием — условие проверяется перед телом, и тело повторяется, пока условие истинно. Если условие ложно с самого начала, тело не выполнится ни разу. В Python:
while. - Цикл с постусловием — сначала выполняется тело, затем проверяется условие, поэтому тело выполнится хотя бы один раз. В Python отдельного оператора нет; его записывают через
while True:иbreak.
для i от 1 до 5
S = S + i
всё
пока a < b
a = a + 5
всё
повторять
x = x − 3
пока x > 0В блок-схемах ГЦЭ цикл со счётчиком тоже рисуют ромбом: сначала i = 1, затем ромб i ≤ n, а в теле обязательно i = i + 1. Как только видите стрелку, идущую вверх, — перед вами цикл; посмотрите, какой выход ромба возвращается назад: это и есть условие продолжения цикла.
Таблица трассировки и типичные задачи на циклы
В таблице трассировки цикла каждая строка — одна проверка условия: записываем ответ на условие, затем новые значения переменных после тела. В последней строке условие даёт «Нет», и цикл заканчивается. Внимание: условие всегда проверяется на один раз больше, чем число повторений.
- Sсумма; начальное значение 0
- Pпроизведение; начальное значение 1 (с 0 оно навсегда останется 0)
- kколичество (счётчик); начальное значение 0
Три «накопительные» переменные цикла и их начальные значения
S = 0; i = 1; пока i ≤ 5: S = S + i·i; i = i + 2. Выводится S. Что будет напечатано?
Показать решениеСкрыть решение
| Проверка | i (до) | i ≤ 5 | S = S + i·i | i = i + 2 |
|---|---|---|---|---|
| 1 | 1 | Да | 0 + 1 = 1 | 3 |
| 2 | 3 | Да | 1 + 9 = 10 | 5 |
| 3 | 5 | Да | 10 + 25 = 35 | 7 |
| 4 | 7 | Нет |
1) P = 1; для i от 1 до 5: P = P · i. Что будет на выходе?
2) В том же алгоритме по ошибке написали P = 0. Что теперь напечатается?
Показать решениеСкрыть решение
2) 0 · i всегда равно 0: P на всех шагах остаётся 0, вывод 0. Произведение начинают с 1, сумму — с 0.
- n % 10последняя цифра числа (остаток от деления на 10)
- n // 10число без последней цифры (целочисленное деление)
Цикл по цифрам: пока n > 0, берём последнюю цифру и отбрасываем её
n = 4072; s = 0; k = 0. Пока n > 0: s = s + n % 10; k = k + 1; n = n // 10. Выводятся s и k.
Показать решениеСкрыть решение
407 > 0: s = 9, k = 2, n = 40
40 > 0: s = 9 (цифра 0), k = 3, n = 4
4 > 0: s = 13, k = 4, n = 0
0 > 0 — Нет. Вывод: 13 4. Цифра 0 не меняет сумму, но учитывается в количестве.
n = 4072
s = 0
k = 0
while n > 0:
s = s + n % 10
k = k + 1
n = n // 10
print(s, k)
a = [12, 7, 25, 3, 18]
m = a[0]
for x in a:
if x > m:
m = x
print(m)▸ Ожидаемый результат
13 4 25
while по цифрам и поиск максимума: кандидат m — первый элемент, затем с ним сравнивается каждый элемент. В экзаменационных программах n читают так: n = int(input()).Задания ГЦЭ: число повторений и два цикла подряд
В заданиях ГЦЭ цикл часто повторяется десятки раз — выписывать каждый шаг долго и рискованно. Поэтому нужно найти закономерность: если переменная на каждом шаге меняется на одно и то же число, её значение после k шагов записывается формулой. Тогда условие остановки цикла превращается в неравенство.
- a₀, b₀начальные значения переменных (a₀ < b₀)
- p, qприрост a и уменьшение b на каждом шаге
- kчисло повторений цикла «a < b»
- ⌈ ⌉округление вверх: 10,875 → 11
Цикл останавливается, как только a ≥ b: разрыв сокращается на p + q за шаг
- 1Найдите переменные
Какие переменные входят в условие цикла и на сколько они меняются за один шаг тела?
- 2Запишите после k шагов
Например, a = a₀ + p·k, b = b₀ − q·k; если изменение непостоянно, выпишите первые 4–5 шагов в таблицу и ищите закономерность.
- 3Решите условие остановки
Запишите отрицание условия цикла (например, a ≥ b) как неравенство и найдите наименьшее натуральное k, которое ему удовлетворяет.
- 4Проверьте границу
Вычислите значения для k − 1 и k: после k − 1 шагов условие ещё должно быть истинным, после k — ложным.
При a = 3 и b = 90 алгоритм: пока a < b: a = a + 5; b = b − 3. Найдите число выполненных повторений цикла.
Показать решениеСкрыть решение
Цикл останавливается, когда 3 + 5k ≥ 90 − 3k → 8k ≥ 87 → k ≥ 10,875 → наименьшее целое k = 11.
Проверка: k = 10: a = 53, b = 60, 53 < 60 — цикл продолжается; k = 11: a = 58, b = 57 — остановка ✓.
По блок-схеме выше найдите значение a, выведенное после выполнения алгоритма.
Показать решениеСкрыть решение
В цикл II входят a = 3, b = 8 (b > 4):
b = 8 − 3 = 5, a = 3 + 5 = 8
b = 5 − 3 = 2, a = 8 + 2 = 10
2 > 4 — Нет. Вывод: 10.
Внимание: во втором цикле сначала уменьшается b, а затем к a прибавляется новое значение b.
Алгоритм: S = 0; b = 25; a = ?; пока a < b: a = a + 5; S = S + a; b = b − 2. Выводится S. Цикл остановился при a = 23, b = 19. Определите начальное значение a и найдите S.
A) 31 B) 54 C) 49 D) 77 E) 36
Показать решениеСкрыть решение
a растёт на 5 за шаг: a₀ = 23 − 3·5 = 8.
Выполнение: 8 < 25 → a = 13, S = 13, b = 23; 13 < 23 → a = 18, S = 31, b = 21; 18 < 21 → a = 23, S = 54, b = 19; 23 < 19 — Нет.
S = 54, ответ B. («31» получают, пропустив один шаг.)
Обратные задачи: вход по выводу
Вводятся a и b; n = 3.
Цикл I: пока a < 10·n: вывести «AB»; a = a + n.
Цикл II: пока b ≥ 20·n: вывести «BA»; b = b − n.
При выполнении «AB» вывели 5 раз, «BA» — 4 раза. Найдите сумму наибольших возможных натуральных значений a и b.
Показать решениеСкрыть решение
a + 4·3 < 30 → a < 18; a + 5·3 ≥ 30 → a ≥ 15. Значит, a ∈ {15; 16; 17}, наибольшее — 17.
Цикл II выполнился 4 раза: b − 3·3 ≥ 60 → b ≥ 69; b − 4·3 < 60 → b < 72. Значит, b ∈ {69; 70; 71}, наибольшее — 71.
Сумма: 17 + 71 = 88.
Блок-схему выполняют 7 раз; каждый раз для x по очереди вводят одно из чисел 14, 27, 33, 40, 51, 8, 60. Сколько всего раз будет выведено 1?
Показать решениеСкрыть решение
Проверим по сумме цифр: 27, 33, 51, 60 делятся; 14, 40, 8 — нет.
Ответ: 4. Выписывать шаги для каждого числа не нужно — достаточно понять, что делает цикл.
k = 0; для n от −50 до 50 (шаг 1): если (n + 7)·(20 − n) > 0, то k = k + 1. Выводится k.
A) 27 B) 26 C) 13 D) 28 E) 25
Показать решениеСкрыть решение
Произведение положительно, если оба множителя положительны: n > −7 и n < 20 (оба отрицательными быть не могут).
Целые числа: −6, −5, …, 19 → 19 − (−6) + 1 = 26, ответ B. («27» получают, посчитав один из концов: −7 или 20.)
Вложенные и бесконечные циклы
В теле цикла может находиться другой цикл — это вложенный цикл. На каждом шаге внешнего цикла внутренний выполняется полностью, от начала до конца. Если границы внутреннего цикла не зависят от внешней переменной, общее число повторений — произведение: 4 · 3 = 12. Если зависят (например, j от 1 до i), повторения складывают построчно.
1) s = 0; для i от 1 до 4: для j от 1 до 3: s = s + 1. s = ?
2) s = 0; для i от 1 до 4: для j от 1 до i: s = s + 1. s = ?
Показать решениеСкрыть решение
2) i = 1: 1 шаг; i = 2: 2; i = 3: 3; i = 4: 4 → s = 1 + 2 + 3 + 4 = 10.
Вы научились читать циклы; следующий шаг — строить их самим. В письменной части экзамена требуется полная блок-схема, которая вводит n чисел и работает с циклом со счётчиком, — это тема урока «Построение блок-схем: письменные задания». Запись тех же циклов на Python изучается в разделе программирования.
Проверьте формулу из примера 4: при a = 3, b = 90 в цикле while a < b: увеличивайте a на 5, уменьшайте b на 3, считайте повторения счётчиком и выведите их число.
a = 3
b = 90
k = 0
# loop here
print(k)▸ Ожидаемый результат
11
Главное
- Есть три вида циклов: со счётчиком, с предусловием и с постусловием; в последнем тело выполняется хотя бы раз.
- В таблице трассировки строка — одна проверка условия; условие проверяется на один раз больше, чем число повторений.
- Сумма начинается с 0, произведение — с 1, счётчик — с 0; цифры отделяют через n % 10 и n // 10.
- Число повторений: запишите значения после k шагов и решите условие остановки как неравенство.
- «Выполнился k раз» = при k-й проверке условие истинно, при (k + 1)-й — ложно; эти два неравенства дают промежуток для входа.
- Во вложенном цикле внутренний цикл полностью выполняется на каждом шаге внешнего; при независимых границах повторения перемножаются.
Проверь себя
Вопросов: 12. Каждый правильный ответ приносит XP.