"Информатика (в 2 частях)", Нателаури Н.К., Маранин С.С.
Циклический алгоритм — это алгоритм, в котором одна и та же последовательность команд выполняется несколько раз. Он нужен, чтобы не записывать одинаковые действия отдельно для каждого повторения: программа становится короче, а её структура — понятнее. Повторения могут быть заранее посчитаны или продолжаться до выполнения условия. Главное — правильно организовать тело цикла, изменение переменной и момент проверки условия завершения.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Циклический алгоритм — алгоритм, в котором некоторый набор команд повторяется несколько раз. Он заменяет многократную запись одинаковых действий одной конструкцией. Это нужно, чтобы алгоритм был короче, понятнее и удобнее для изменения.
Тело цикла — последовательность команд, которая выполняется при каждом повторении цикла. В него помещают действие, которое должно повторяться. По телу можно понять, что именно произойдёт на одном шаге.
Счётчик цикла — переменная, изменяющаяся при повторениях и помогающая определить их количество. Например, счётчик может принимать значения 1, 2, 3 и так далее. Он нужен, чтобы цикл знал, сколько шагов уже выполнено и когда остановиться.
Условие завершения цикла — проверяемое условие, при выполнении которого повторения прекращаются. Оно связывает остановку цикла с текущими значениями переменных. Без такого условия алгоритм может выполнить слишком много повторений или работать бесконечно.
Повторяющиеся действия удобно объединять в цикл, потому что одинаковые команды не приходится записывать много раз. Благодаря этому уменьшается длина алгоритма и легче заметить его основную идею. Если правило действия изменится, достаточно исправить тело цикла в одном месте, а не искать несколько одинаковых фрагментов.
В цикле с известным числом повторений заранее задают начальное значение счётчика, границу и шаг изменения. На каждом шаге выполняется тело, затем счётчик меняется на выбранный шаг. Когда заданное количество повторов закончено, цикл останавливается, поэтому такой способ удобен для точно определённого числа действий.
В цикле с предусловием условие проверяется до выполнения тела. Это позволяет не запускать повторяющиеся команды, если начальные данные уже показывают, что работать дальше не нужно. Например, если накопитель сразу превышает допустимую границу, тело такого цикла не выполнится ни разу.
В цикле с постусловием сначала выполняется тело, а уже потом проверяется условие. Такой порядок нужен, когда действие необходимо выполнить хотя бы один раз, например получить первый ввод пользователя. Даже если условие остановки верно с самого начала, одна итерация, то есть одно повторение тела, уже произойдёт.
Чтобы проследить выполнение цикла, после каждого шага записывают значения важных переменных и результат проверки условия. Сначала отмечают исходные данные, затем выполняют тело и изменяют счётчик или накопитель. Цикл заканчивается в тот момент, когда условие завершения становится истинным, поэтому последний шаг нужно проверять особенно внимательно.
| Вид цикла | Когда проверяется условие | Известно ли число повторений заранее | Минимальное число выполнений тела | Когда применять |
|---|---|---|---|---|
| Цикл с известным числом повторений | По счётчику или заданной границе | Да | Зависит от заданного количества, обычно 0 или 1 | Когда число шагов известно заранее |
| Цикл с предусловием | До выполнения тела | Нет | 0 | Когда повторение зависит от начальных данных |
| Цикл с постусловием | После выполнения тела | Нет | 1 | Когда действие нужно выполнить хотя бы один раз |
Сначала определите, известно ли число повторений до начала работы. Затем обратите внимание на момент проверки: до тела или после него. Столбец о минимальном числе выполнений помогает понять, может ли алгоритм пропустить тело цикла.
Условие: составить алгоритм вывода числа 5 на экран 4 раза. Число повторений известно заранее, поэтому проверять внешнее условие не требуется. Нужно только выбрать границы изменения счётчика.
Ответ: тело цикла должно содержать вывод 5 и выполняться для i = 1, 2, 3, 4. Число будет выведено ровно четыре раза.
Условие: дано начальное значение накопителя. Увеличивать его на 3, пока он не станет больше 20, затем вывести результат. Подойдёт цикл с предусловием, потому что перед каждым увеличением нужно проверить, не достигнута ли граница.
Ответ: точное значение зависит от начального числа. Например, при a = 8 получатся значения 11, 14, 17, 20 и 23, после чего будет выведено 23.
Условие: пользователь вводит числа, пока не введёт 0. Нужно найти сумму введённых чисел, не считая завершающий ноль. Удобно выполнить ввод хотя бы один раз, а затем проверить, является ли введённое значение нулём.
Ответ: после ввода 0 цикл прекращается, а на экран выводится сумма всех предыдущих чисел. Завершающее значение служит только сигналом остановки.
Не изменять счётчик или переменную, влияющую на условие. Так происходит, когда забывают увеличить счётчик или изменить накопитель. Проверьте, меняется ли эта переменная после каждого выполнения тела.
Неверно задавать начальное или конечное значение счётчика. Ошибка границ может добавить лишний повтор или пропустить нужный. Полезно выписать первое и последнее значение, при котором тело должно выполняться.
Путать проверку до и после тела цикла. При предусловии тело может не запуститься, а при постусловии оно выполняется хотя бы один раз. Для проверки выясните, где находится условие относительно команд тела.
Включать завершающее значение в вычисления. Ноль или другое специальное значение иногда только сообщает, что ввод закончен. Перед добавлением данных в сумму проверьте, не является ли значение признаком остановки.
До изучения циклов нужно уметь читать алгоритмы, работать с переменными и сравнивать значения по условию. Эти навыки позволяют понять, какие данные меняются и когда прекращается повторение.
Циклы применяются при обработке наборов данных, вычислении сумм и поиске нужных значений. В программах они помогают многократно выполнять одно правило без повторной записи одинаковых команд.
Чем циклический алгоритм отличается от линейного?
В линейном алгоритме команды выполняются один раз и последовательно. В циклическом алгоритме часть команд, называемая телом цикла, повторяется.
Когда лучше использовать цикл с известным числом повторений?
Такой цикл выбирают, когда заранее известно, сколько раз нужно выполнить действие. Например, он подходит для вывода числа на экран 4 раза или обработки 10 элементов.
Может ли тело цикла с предусловием не выполниться ни разу?
Да. Условие проверяется до первого выполнения тела, и если оно сразу ложно, цикл не запустится.
Почему цикл может стать бесконечным?
Это происходит, если условие завершения никогда не становится истинным. Частая причина — переменная или счётчик, от которых зависит условие, не изменяются.
Как проверить, сколько раз выполнится тело цикла?
Нужно проследить начальное значение счётчика или переменной, её изменение на каждом шаге и момент остановки. Удобно записывать значения в таблицу по шагам.
Циклический алгоритм