"Математика (в 3-х частях)", Демидова Т.Е., Козлова С.А., Тонких А.П.
Алгоритм с повторением, или цикл, позволяет выполнить одну команду или группу команд несколько раз, не записывая их заново для каждого шага. Циклы нужны, когда в задаче повторяются одинаковые действия: например, прибавление чисел или изменение величины на каждом шаге. Повторения могут быть заранее посчитаны или зависеть от условия. Чтобы алгоритм работал правильно, нужно определить тело цикла, правило продолжения и способ завершения.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Алгоритм с повторением (цикл) — последовательность команд, в которой одна или несколько команд выполняются повторно. Например, можно многократно прибавлять к числу одно и то же значение. Цикл нужен, чтобы не записывать одинаковые действия отдельно для каждого шага. Благодаря этому легче заметить общий порядок работы алгоритма.
Тело цикла — команда или группа команд, которые повторяются при выполнении цикла. Если в задаче на каждом шаге нужно изменить число и вывести его, обе команды относятся к телу. Это понятие помогает отделить повторяющиеся действия от тех, которые выполняются только один раз. Неверно выбранное тело приводит к тому, что часть нужных действий пропускается или повторяется лишний раз.
Счётчик цикла — величина, по которой отслеживают число повторений и определяют, когда цикл нужно завершить. Обычно после очередного выполнения тела счётчик изменяют на единицу или на другое заданное число. Он помогает сопоставить текущий шаг с нужным количеством повторений. Поэтому важно заранее определить начальное значение счётчика и правило его изменения.
Условие продолжения цикла — проверка, от результата которой зависит, будет ли тело цикла выполнено ещё раз. Например, условие может требовать продолжать действия, пока число не превысит 100. Проверка связывает ход алгоритма с текущими значениями величин. Чтобы понять, когда остановится цикл, нужно знать, когда условие станет ложным.
Повторяющиеся действия удобно записывать одним циклом, потому что при отдельных командах пришлось бы снова и снова описывать одинаковый шаг. В цикле достаточно один раз задать его тело и правило повторения. Благодаря этому запись становится короче, а общий порядок действий заметнее. Кроме того, изменение правила выполняется в одном месте, а не во множестве похожих команд.
При каждом повторении выполняется тело цикла, поэтому важно точно определить, какие команды в него входят. Команды внутри тела выполняются в заданной последовательности: например, сначала к сумме добавляют число, затем переходят к следующему слагаемому. Если поменять порядок, значение переменной может измениться иначе. Разбор одного шага помогает проверить, что тело действительно выполняет нужное действие.
В цикле с заданным числом повторений количество шагов известно заранее. Счётчик показывает, какой шаг выполняется, и после каждого повторения меняется по установленному правилу. Когда достигнуто заданное число шагов, цикл заканчивается. Такой способ удобен, если заранее известно, сколько раз нужно выполнить одинаковую операцию.
В цикле, управляемом условием, продолжение зависит от проверки. Если условие проверяют перед телом, сначала решают, можно ли начинать очередное повторение; при ложном результате тело пропускается. Если проверка проводится после тела, первый шаг выполняется обязательно, и только затем решается, повторять ли его. Поэтому для описания алгоритма нужно уточнить не только условие, но и место его проверки.
Для завершения цикла недостаточно записать условие остановки: должно изменяться то, что влияет на это условие. В цикле с заданным числом повторений меняется счётчик, а в цикле с условием — например, число, которое сравнивают с границей. Если значение не меняется или движется в неверную сторону, остановка может не наступить. Перед запуском полезно проверить, как меняется величина на нескольких шагах и приведёт ли это изменение к завершению.
| Свойство | Цикл с заданным числом повторений | Цикл с условием |
|---|---|---|
| Что определяет число повторений | Заранее заданное количество шагов | Результат проверки условия |
| Когда проверяется завершение | После выполнения заданного числа шагов | Перед повторением или после выполнения тела |
| Роль счётчика или условия | Счётчик отмечает выполненные шаги | Условие разрешает продолжить или требует остановиться |
| Как убедиться, что цикл завершится | Проверить, что счётчик изменяется и достигнет заданного числа | Убедиться, что изменяемая величина приведёт условие к остановке |
| Пример применения | Выполнить пять сложений | Удваивать число, пока оно не станет больше 100 |
Сначала определите, известно ли число повторений заранее: это поможет выбрать подходящий столбец. Затем проверьте, как меняется счётчик или величина в условии и в какой момент происходит проверка. Так можно заранее заметить, выполнится ли тело хотя бы один раз и остановится ли цикл.
Нужно сложить пять последовательных чисел, поэтому удобно использовать цикл с известным числом повторений. В качестве накопителя суммы возьмём переменную S, а переменная i будет обозначать очередное слагаемое. Начальное значение суммы равно нулю, чтобы при первом сложении в ней не было лишнего числа. После каждого шага переходим к следующему слагаемому.
Последнее значение накопителя включает все пять слагаемых, значит повторений было достаточно и ни одно число не пропущено. Ответ: сумма равна 15.
Пусть начальное число равно 2, а увеличить его нужно четыре раза. Вывод требуется после каждого шага, поэтому команду вывода помещаем в тело цикла вместе с увеличением числа. Счётчик поможет не перепутать количество повторений. Проследим все изменения по порядку.
Проверка счётчика показывает, что тело выполнено четыре раза, а начальное значение 2 не выводится, потому что вывод происходит после увеличения. Ответ: алгоритм выводит 5, 8, 11 и 14.
Пусть начальное число равно 7, и после каждого удваивания нужно выводить результат. Условие продолжения сформулируем так: продолжать, пока x не больше 100. Перед каждым шагом проверяется именно текущее значение, поэтому нужно проследить, когда проверка станет ложной. Изменение числа внутри тела приближает его к границе остановки.
Удвоение выполнялось, пока число до шага было не больше 100; поэтому последнее выведенное значение может оказаться больше границы. Ответ: выводятся 14, 28, 56 и 112, после чего цикл заканчивается.
Считать, что цикл обязательно выполнится хотя бы один раз. Так думают, когда не учитывают проверку условия до тела. Если начальное условие ложно, повторение не начнётся. Проверь себя: подставь начальные значения в условие и выясни, какой результат получится.
Не изменять счётчик или величину из условия. Ошибка возникает, если сосредоточиться на командах тела и забыть о переходе к следующему шагу. Тогда проверка может каждый раз давать один и тот же результат, и цикл не завершится. Проверь, меняется ли нужная величина и приближает ли её изменение к остановке.
Помещать изменение счётчика вне тела цикла. В этом случае счётчик может измениться только до повторений или после них, а не на каждом шаге. Из-за этого алгоритм неверно считает количество выполнений. Проверь, что команда изменения расположена там, где срабатывает после каждого нужного повторения.
Неверно выбирать границу условия. Например, условия «x меньше 5» и «x меньше или равно 5» отличаются на граничном значении. Ошибка появляется, если не проследить сам последний шаг. Проверь алгоритм вручную на значении, равном границе, и сравни полученное число повторений с задачей.
Для работы с циклами нужно уметь читать алгоритмы из последовательных команд и учитывать порядок их выполнения. Также пригодятся сравнение чисел, проверка условий и вычисления с переменными, потому что цикл опирается на меняющиеся значения. Циклы применяют при описании вычислений и в программировании. Они особенно полезны в задачах, где одно действие повторяется много раз.
Чем цикл отличается от последовательности команд?
В обычной последовательности каждая команда выполняется один раз в заданном порядке. Цикл возвращает выполнение к своему телу, поэтому одни и те же команды могут повториться несколько раз.
Что называют телом цикла?
Тело цикла — команда или группа команд, которые выполняются при каждом повторении. Если команда должна срабатывать на каждом шаге, её нужно включить в тело.
Как понять, сколько раз выполнится цикл?
Если число повторений задано заранее, оно показывает количество шагов. Если цикл управляется условием, нужно проследить его проверки и изменения величин, от которых зависит условие.
Почему цикл может никогда не завершиться?
Так бывает, если счётчик или величина в условии не меняется либо меняется не в ту сторону. Тогда условие продолжения остаётся истинным, и алгоритм повторяет команды бесконечно.
Может ли тело цикла не выполниться ни разу?
Да, если условие проверяется до выполнения тела и с самого начала оказывается ложным. При проверке после выполнения тело сначала запускается, поэтому хотя бы один шаг будет сделан.
2.37. Алгоритмы с повторением (циклом)