
Сложить числа от 1 до 100. Линейной схемой это сто прямоугольников. В ветвлении дорога раздваивается, а здесь она должна повернуть назад: сделал шаг, вернулся, проверил, сделал ещё. Такая петля в схеме и есть цикл. Их три вида, и на экзамене спрашивают все три.
Чему научишься. После урока сможешь: нарисовать блок-схему цикла с предусловием, с постусловием и со счётчиком; накопить сумму или произведение в переменной-накопителе; протрассировать цикл таблицей и сказать, сколько раз выполнится тело; найти в чужом цикле причину зацикливания.
Вспомни. Что такое тело цикла и зацикливание, разобрано в уроке «Повторение. Циклические алгоритмы». Присваивание x := x + 1 и таблица трассировки: урок 2.1 этой главы, там же картинка с фигурами ГОСТ, включая шестиугольник «подготовка».
Три вида цикла
1. ЦИКЛ С ПРЕДУСЛОВИЕМ («пока») ┌──▶‹ условие? ›──нет──▶ дальше по схеме │ │ да │ [ тело ] └────────┘ Проверка ДО тела: тело может не выполниться ни разу.
2. ЦИКЛ С ПОСТУСЛОВИЕМ («до»)
┌──▶[ тело ]
│ │
│ ‹ условие? ›
└──нет───┘
│ да
▼ дальше по схеме
Проверка ПОСЛЕ тела: тело выполняется хотя бы один раз.
3. ЦИКЛ СО СЧЁТЧИКОМ («для») ┌──▶⟨ i := 1, N ⟩──закончился──▶ дальше по схеме │ │ │ [ тело ] └────────┘ Число повторов известно заранее; i сам растёт на 1 от 1 до N. ⟨ ⟩ — рамка шестиугольника «подготовка» (см. картинку фигур в уроке 2.1): прямоугольник со срезанными боками.

Как выбрать вид? Спроси себя: известно ли заранее, сколько раз повторять? Известно (N раз, 10 раз): счётчик. Не известно, но проверить надо до первого шага («пока есть деньги на счёте, снимай»): предусловие. Не известно, и первый шаг нужен в любом случае («вводи пароль, пока не подойдёт»): постусловие.
Накопитель: сумма от 1 до N с предусловием
Чтобы что-то накопить, нужен ящик-накопитель, в который кладут ноль до цикла, а внутри цикла к нему прибавляют. Это как копилка: сначала пустая, потом каждый день по монете. Для суммы 1 + 2 + … + N накопитель S, счётчик i идёт от 1 до N.
СУММА 1 + 2 + … + N (цикл с предусловием)
( Начало )
│
/ ввод N /
│
[ S := 0 ] ← копилка пустая
[ i := 1 ] ← счётчик на старте
│
┌────▶‹ i ≤ N ? ›──нет──▶/ вывод S /──▶( Конец )
│ │ да
│ [ S := S + i ] ← кладём монету
│ [ i := i + 1 ] ← следующий номер
└──────────┘
ТРАССИРОВКА ПРИ N = 4 проверка i ≤ 4 │ i │ S := S + i │ i := i + 1 ────────────────┼───┼────────────┼─────────── до цикла │ 1 │ S = 0 │ 1 ≤ 4 да │ 1 │ 0+1 = 1 │ i = 2 2 ≤ 4 да │ 2 │ 1+2 = 3 │ i = 3 3 ≤ 4 да │ 3 │ 3+3 = 6 │ i = 4 4 ≤ 4 да │ 4 │ 6+4 = 10 │ i = 5 5 ≤ 4 НЕТ │ 5 │ выход, на экране 10 Тело выполнилось 4 раза. Условие проверялось 5 раз. После цикла i = 5, не 4 — частый вопрос на контрольной.
Постусловие: сначала сделай, потом спроси
Ввод пароля: спрашивать пароль нужно в любом случае хотя бы раз, а проверять после ввода. Значит, тело стоит до ромба. У цикла с постусловием стрелка «нет» возвращает наверх, а «да» выпускает наружу (в Паскале это repeat … until, «повторяй, пока условие не станет верным» — увидим в главе 5).
ВВОД ПАРОЛЯ ДО ПРАВИЛЬНОГО (цикл с постусловием)
( Начало )
│
┌──▶/ ввод p /
│ │
│ ‹ p = «1234» ? ›
└──нет────┘ │ да
▼
/ вывод «вход» /
│
( Конец )
Даже если пароль верный с первого раза, ввод выполнился один раз —
ноль раз здесь невозможен.
Счётчик: когда число повторов известно
Ту же сумму от 1 до N со счётчиком рисуют короче: шестиугольник сам заводит i := 1, сам увеличивает и сам останавливает на N. Прямоугольники i := 1 и i := i + 1 исчезают: за них отвечает фигура.
СУММА 1 + 2 + … + N (цикл со счётчиком)
/ ввод N /
│
[ S := 0 ]
│
┌──▶⟨ i := 1, N ⟩──закончился──▶/ вывод S /
│ │
│ [ S := S + i ]
└─────────┘
Та же копилка, но счётчик спрятан в шестиугольник.
Как не зациклиться
Цикл с условием заканчивается, только если условие когда-нибудь станет ложным. Значит, внутри тела обязана меняться переменная из условия. Забыли i := i + 1, и i навсегда 1, 1 ≤ N всегда верно, схема крутится вечно. Это зацикливание, и на экзамене его просят найти в готовой схеме. Проверка проста: найди переменную в ромбе и спроси, где в теле она меняется.
Контрольный вопрос. Какой вид цикла гарантирует, что тело выполнится хотя бы один раз?
Подсказка: У этого цикла тело стоит в схеме ДО ромба с условием.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Схема суммы: S := 0, i := 1, пока i ≤ N: S := S + i, i := i + 1, затем вывод S. Что выведет схема при N = 6? Впиши число.
Подсказка: Сложи все номера, которые побывают в i, пока условие верно.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Схема суммы: S := 0, i := 1, пока i ≤ N: S := S + i, i := i + 1. Сколько раз выполнится тело цикла при N = 5? Впиши число.
Подсказка: Тело выполняется, пока i не превысит N; i начинается с единицы.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Цикл с предусловием проверяет условие…
Подсказка: «Пред» значит «до».
Онлайн-проверка ответа появится позже
Контрольный вопрос. Схема суммы: S := 0, i := 1, пока i ≤ N: S := S + i, i := i + 1. Чему равен счётчик i сразу после выхода из цикла при N = 6? Впиши число.
Подсказка: Цикл выходит, когда условие впервые становится ложным: какое первое i не проходит проверку i ≤ N?
Онлайн-проверка ответа появится позже
Контрольный вопрос. Цикл записан как «для i от 1 до 10 выполнять тело». Какой это вид цикла?
Подсказка: Число повторов известно заранее, и переменная i растёт сама.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Схема со счётчиком: S := 0; для i от 1 до 3: S := S + i · i; затем вывод S. Что выведет схема? Впиши число.
Подсказка: Шестиугольник сам перебирает i = 1, 2, 3. В накопитель каждый раз кладётся квадрат текущего i.
Онлайн-проверка ответа появится позже
Задание. Эта схема суммы зацикливается при любом N ≥ 1. Какая переменная должна меняться в теле цикла, чтобы условие однажды стало ложным? Впиши имя переменной.
/ ввод N / │ [ S := 0 ] [ i := 1 ] │ ┌────▶‹ i ≤ N ? ›──нет──▶/ вывод S / │ │ да │ [ S := S + i ] └──────────┘Подсказка: Найди переменную в ромбе и проверь, есть ли в теле блок, который её меняет.
✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.
Онлайн-проверка ответа появится позже
Контрольный вопрос. Цикл с постусловием: i := 10; повторять i := i − 3 до тех пор, пока не станет верно i < 0. Сколько раз выполнится тело? Впиши число.
Подсказка: Выписывай значение i после каждого выполнения тела и после каждого проверяй условие выхода: шаг, на котором i впервые стало отрицательным, тоже считается.
Онлайн-проверка ответа появится позже
Задание. Нарисуй на бумаге блок-схему вычисления произведения чисел от 1 до N любым видом цикла: ввод N, накопитель, цикл, вывод P. Протрассируй её при N = 5 и впиши число, которое схема выведет.
Принято, если: (1) число совпало; (2) накопитель до цикла получает правильное стартовое значение (не ноль!); (3) в цикле есть и накопление, и изменение счётчика (или шестиугольник счётчика); (4) рядом таблица трассировки по шагам.Произведение чисел от 1 до N (факториал): P = 1 · 2 · 3 · … · N
Подсказка: Копилка для произведения не может начинаться с нуля: ноль, умноженный на что угодно, остаётся нулём. С какого числа тогда начать?
✅ Готово, если: ответ раскрывает то, что просит критерий приёмки в задании выше.
Онлайн-проверка ответа появится позже
Итог. Три вида цикла: с предусловием (проверка до тела, может не выполниться ни разу), с постусловием (тело хотя бы раз, проверка после), со счётчиком (число повторов известно, шестиугольник ведёт i сам). Накопитель обнуляется до цикла (для произведения единица), в теле к нему прибавляют. Переменная из условия обязана меняться в теле, иначе зацикливание. Цикл проверяют таблицей трассировки.
Что дальше
Логика и три структуры в блок-схемах, то есть всё, что прошли в группе, теперь разобрано. Дальше эти же схемы превращаются в программы на Паскале: сначала линейные, потом if, потом циклы for, while и repeat. Глава 3.
