Теория:
Циклическим называется алгоритм, в котором серия команд выполняется определённое количество раз.
Циклы с параметром (счётчиком) выполняются заданное число раз.
| Программа на Pascal | Программа на Python |
| for \(i\)\(:\) \(= n\) to \(k\) do begin … end; | for \(i\) in range(\(n\)): … |
Пример
Дан ряд чисел от \(1\) до \(20\), нужно найти сумму ряда.
Чтобы найти сумму, нужно выполнить алгоритм \(20\) раз. Обозначим слагаемое через \(i\) и на каждом повторе будем добавлять в переменную \(S\). Запишем программу.

Рис. \(1\). Программа на Pascal

Рис. \(2\). Программа на Python
Примечание: в программном коде на Python в строке for i in range указываем \(21\), т. к. последнее число в заданный диапазон не входит.
Добавим в программу условие, например: нужно сложить не все цифры диапазона, а только чётные. Условие проверяет чётность числа.

Рис. \(3\). Программа на Pascal

Рис. \(4\). Программа на Python
Усложним условие: дан ряд из \(N\) чисел, посчитать количество чисел, кратных \(5\) и не кратных \(3\).

Рис. \(5\). Программа на Pascal

Рис. \(6\). Программа на Python
Циклы с условием
В Pascal используются циклы с постусловием (repeat... until) и предусловием (while), а в Python используется только while.В чём отличие?
Цикл repeat… until — цикл, в котором серия команд повторяется, пока не выполнено условие, а в цикле while серия команд выполняется, пока выполняется условие.
В цикле while серия команд может не выполниться ни разу, в цикле repeat такого произойти не может — хоть раз, но выполнится.
В Python нет цикла repeat, но его можно организовать с помощью цикла while, например так:

Рис. \(7\). Программа с использованием постусловия
While True будет выполняться бесконечно, но при вводе с клавиатуры числа больше \(0\) цикл закончится.
Рассмотрим задачу: определить количество чётных цифр в числе.
Составим алгоритм решения задачи.
1. Вводим число.
2. «Отсекаем» последнюю цифру числа (\(a\)\(:\) \(= x\) \(mod\) \(10\)).
3. Проверяем: если цифра чётная (\(if\) \(a\) \(mod\) \(2 = 0\) \(then\) \(k\)\(:\) \(= k + 1\)), то добавляем в переменную, например \(k\), единицу (\(k\)\(:\) \(= k + 1\)).
4. Уменьшаем количество цифр на одну, команда \(x\) \(div\) \(10\) уменьшает число на \(1\) разряд.
5. Повторяем цикл, пока есть цифры в числе (while \(x > 0\) \(do\)).

Рис. \(8\). Программа на Pascal

Рис. \(9\). Программа на Python
Решение задачи «Как на ЕГЭ» № \(17\)
Рассматривается множество целых чисел, принадлежащих полуинтервалу \((1310; 13154]\), которые делятся на \(3\) и не делятся на \(9, 11, 19\).
Найди количество таких чисел и разницу между максимальным и минимальным числом.
Составим алгоритм решения.
1. Для решения будем использовать цикл for, диапазон от \(1311\) (круглая скобка) до \(13154\) включительно.
2. С помощью определения остатка от деления находим количество чисел, кратных \(3\) и не кратных \(9\), \(11\), \(19\).
3. Найдём максимальное число, которое попадает под условие (максимальным будет число, которое попадает под условие позже всего).
4. Найдём минимальное число, которое попадает под условие (минимальное число можно найти, «прокрутив» последовательность в обратном порядке).
5. Найдём разницу между минимальным и максимальным числом.
2. С помощью определения остатка от деления находим количество чисел, кратных \(3\) и не кратных \(9\), \(11\), \(19\).
3. Найдём максимальное число, которое попадает под условие (максимальным будет число, которое попадает под условие позже всего).
4. Найдём минимальное число, которое попадает под условие (минимальное число можно найти, «прокрутив» последовательность в обратном порядке).
5. Найдём разницу между минимальным и максимальным числом.

Рис. \(10\). Программа на Pascal
Ответ:
\(k = 2265\).
Разница max-min \(= 11835\).

Рис. \(11\). Программа на Python
Ответ:
\(k = 2265\).
Разница max-min \(= 11835\).
Как на ЕГЭ. Задание № \(14\).
Для решения задания рассмотрим программу на Python.
Алгоритм решения.
1. Запишем число в переменную, например \(x\).
2. Организуем цикл while, пока \(x\) больше \(0\), будем выполнять следующие действия:
- определим остаток от деления \(x\) на основание системы счисления (например, \(2\)).
- Если будем считать количество единиц в числе, то добавим в переменную, например \(k\), единицу.
- Уменьшим число, т. е. поделим нацело на \(2\).
3. Напечатаем \(k\).
![]() |
| Рис. \(12\). Программа на Python |
Ответ: \(483\).
Источники:
Рис. 1. Программа на Pascal. © ЯКласс.
Рис. 2. Программа на Python.© ЯКласс.
Рис. 3. Программа на Pascal. © ЯКласс.
Рис. 4. Программа на Python. © ЯКласс.
Рис. 5. Программа на Pascal. © ЯКласс.
Рис. 6. Программа на Python. © ЯКласс.
Рис. 7. Программа с использованием постусловия. © ЯКласс.
Рис. 8. Программа на Pascal. © ЯКласс.
Рис. 9. Программа на Python. © ЯКласс.
Рис. 10. Программа на Pascal. © ЯКласс.
Рис. 11. Программа на Python. © ЯКласс.
Рис. 12. Программа на Python. © ЯКласс.
