"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В.М. Котов, А.И. Лапо, Е.Н. Войтехович
Циклический алгоритм организует многократное выполнение одних и тех же команд. Он нужен, когда действие повторяется несколько раз: например, при выводе чисел, подсчёте суммы или вводе данных до появления специального значения. Повторение задают заранее известным числом шагов или условием остановки. Главное — правильно определить тело цикла, следить за изменением счётчика или данных и проверить, что цикл обязательно завершится.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Циклический алгоритм — алгоритм, в котором некоторые действия повторяются. Он нужен для задач, где одинаковая работа выполняется над несколькими значениями или несколько раз подряд. Например, один цикл может вывести все числа от 1 до 5.
Цикл — часть алгоритма, организующая повторение действий. Вместо нескольких одинаковых команд мы записываем их один раз и указываем правило повторения. Это сокращает алгоритм и уменьшает риск ошибки при копировании команд.
Тело цикла — команда или последовательность команд, которые выполняются при каждом повторении. Именно в теле находится работа, которую нужно выполнять снова и снова: вывод числа, прибавление слагаемого или обработка введённого значения. От состава тела зависит результат каждого шага.
Условие продолжения цикла — проверяемое условие, от которого зависит, будет ли выполняться очередное повторение. Оно связывает текущие данные с решением продолжать или остановиться. Если условие составлено неверно, цикл может закончиться слишком рано, сделать лишний шаг или стать бесконечным.
Повторяющиеся действия выделяют в цикл, потому что одинаковые команды не нужно каждый раз записывать заново. Такой алгоритм получается короче, а исправление выполняют в одном месте, а не во множестве копий. Кроме того, структура цикла сразу показывает, какая работа повторяется и что меняется от шага к шагу.
Перед выполнением цикла определяют способ повторения: число шагов или условие остановки. Затем алгоритм выполняет тело цикла, изменяет счётчик либо другие данные и снова выполняет нужную проверку. Такая последовательность нужна, чтобы каждый новый шаг использовал обновлённое состояние задачи.
Если число повторений известно заранее, его задают при построении цикла. Например, для вывода пяти чисел достаточно организовать пять повторений и менять счётчик от 1 до 5. Если заранее неизвестно, сколько шагов понадобится, команды повторяют до выполнения заданного условия, например до ввода нуля.
В цикле с условием проверка определяет, начинать ли очередное выполнение или продолжать его. Поэтому нужно проследить, какие данные участвуют в проверке и как они изменяются внутри тела. Если изменение не влияет на условие, алгоритм не приблизится к остановке.
Любой цикл должен иметь понятный путь к завершению. Если условие выхода никогда не становится истинным или счётчик не изменяется нужным образом, повторения продолжатся бесконечно. При составлении алгоритма заранее проверь, какое значение приведёт к остановке и сможет ли оно появиться.
Таблица помогает выбрать способ организации цикла и заранее заметить возможную ошибку. В последнем столбце указано, что нужно проверить до запуска алгоритма. Особенно внимательно сравнивай условие остановки с изменением счётчика или обрабатываемых данных.
| Способ организации повторения | Когда подходит | Что определяет завершение | Что проверять при составлении |
|---|---|---|---|
| Повторение заданное число раз | Количество шагов известно заранее | Достижение заданного числа повторений | Начальное, конечное значение и шаг счётчика |
| Повторение до выполнения условия | Количество шагов заранее неизвестно | Истинность условия остановки | Изменение данных, влияющих на условие |
| Момент проверки условия | Нужно определить, возможен ли нулевой шаг | Проверка до или после тела цикла | Не появится ли лишнее выполнение |
| Изменение счётчика или данных | Нужно приблизить алгоритм к завершению | Переход к граничному значению | Меняется ли величина на каждом повторении |
Условие: составить алгоритм вывода чисел от 1 до 5. Число повторений известно заранее: нужно обработать пять значений. Поэтому удобно взять счётчик, начать с 1 и увеличивать его после каждого вывода.
Ответ: тело цикла выполняется пять раз и выводит последовательность 1, 2, 3, 4, 5. После вывода 5 счётчик станет равен 6, поэтому условие продолжения окажется ложным. Последнее увеличение нужно, чтобы цикл завершился.
Условие: найти сумму целых чисел от 1 до N. Сначала создают переменную суммы со значением 0, потому что к ней будут последовательно прибавляться слагаемые. Затем счётчик проходит все числа от 1 до N.
Ответ: алгоритм накапливает результат так: после первого шага сумма равна 1, после второго — 1 + 2, и так далее. Когда к сумме добавлено N, счётчик становится N + 1 и цикл прекращается. Полученная сумма равна 1 + 2 + ... + N.
Условие: вводить числа и находить их сумму, пока не будет введён ноль, причём ноль не включать в сумму. Количество чисел заранее неизвестно, поэтому цикл зависит от значения очередного ввода. Ноль здесь является признаком остановки, а не слагаемым.
Ответ: каждое ненулевое значение обрабатывается как слагаемое. При появлении нуля алгоритм останавливается до прибавления этого значения. Так исключается лишнее действие и выполняется условие задачи.
Повторяющиеся команды иногда записывают много раз вместо цикла. Так поступают, когда думают только о нескольких конкретных шагах, но алгоритм становится громоздким и его сложнее исправлять. Проверь себя: если одинаковая последовательность отличается только значением счётчика, её следует заменить циклом.
Другая ошибка — не изменять счётчик или данные, связанные с условием. Её допускают, когда забывают добавить изменение в тело цикла, поэтому проверка каждый раз даёт тот же результат. Выпиши значения после каждого шага и убедись, что алгоритм приближается к границе остановки.
Неверная граница приводит к одному лишнему или пропущенному повторению. Это случается при смешении условий «меньше» и «меньше или равно». Проверь отдельно первое и последнее значение счётчика, а затем посчитай фактическое число выполнений.
Нельзя путать проверку до повторения и после него. При проверке до тела цикл может не выполниться ни разу, а при проверке после тела одна команда выполнится даже при сразу наступившем условии остановки. Для проверки смоделируй ситуацию, когда условие ложно уже в самом начале.
До изучения циклов нужно уметь выполнять команды алгоритма по порядку и пользоваться переменными. Переменные хранят счётчик, сумму и текущие данные, а порядок команд определяет один шаг повторения.
Циклы связаны с алгоритмами ветвления, потому что для продолжения или остановки требуется условие и проверка его истинности. Ветвление выбирает один из вариантов действий, а цикл возвращает алгоритм к повторному выполнению команд.
Циклы особенно полезны при обработке последовательностей данных, вычислении сумм и поиске решений в программах. Один и тот же принцип позволяет постепенно просмотреть много значений без записи одинаковых команд.
Зачем в алгоритме нужен цикл?
Цикл позволяет не записывать одинаковые команды много раз. Благодаря этому алгоритм становится короче, понятнее и его легче изменять.
Чем тело цикла отличается от условия цикла?
Тело цикла — это команды, которые повторяются. Условие цикла определяет, нужно ли выполнять очередное повторение или пора остановиться.
Когда число повторений можно задать заранее?
Число повторений задают заранее, если оно известно до начала работы алгоритма. Например, при выводе чисел от 1 до 5 тело цикла нужно выполнить пять раз.
Почему цикл может выполняться бесконечно?
Это происходит, если условие завершения никогда не становится истинным. Частая причина — неизменный счётчик или данные, от которых зависит проверка.
Как проверить, не будет ли в цикле лишнего повторения?
Нужно проследить первое и последнее значение счётчика, а также момент проверки условия. Полезно вручную выполнить несколько первых шагов и отдельно проверить последний.
10.1. Алгоритмы с циклами