На Горох
Математика

2.37. Алгоритмы с повторением (циклом)

"Математика (в 3-х частях)", Демидова Т.Е., Козлова С.А., Тонких А.П.

Объяснение темы В оглавлении: 2.37. Алгоритмы с повторением (циклом)

Кратко о теме

Алгоритм с повторением, или цикл, позволяет выполнить одну команду или группу команд несколько раз, не записывая их заново для каждого шага. Циклы нужны, когда в задаче повторяются одинаковые действия: например, прибавление чисел или изменение величины на каждом шаге. Повторения могут быть заранее посчитаны или зависеть от условия. Чтобы алгоритм работал правильно, нужно определить тело цикла, правило продолжения и способ завершения.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Алгоритм с повторением (цикл) — последовательность команд, в которой одна или несколько команд выполняются повторно. Например, можно многократно прибавлять к числу одно и то же значение. Цикл нужен, чтобы не записывать одинаковые действия отдельно для каждого шага. Благодаря этому легче заметить общий порядок работы алгоритма.

Тело цикла — команда или группа команд, которые повторяются при выполнении цикла. Если в задаче на каждом шаге нужно изменить число и вывести его, обе команды относятся к телу. Это понятие помогает отделить повторяющиеся действия от тех, которые выполняются только один раз. Неверно выбранное тело приводит к тому, что часть нужных действий пропускается или повторяется лишний раз.

Счётчик цикла — величина, по которой отслеживают число повторений и определяют, когда цикл нужно завершить. Обычно после очередного выполнения тела счётчик изменяют на единицу или на другое заданное число. Он помогает сопоставить текущий шаг с нужным количеством повторений. Поэтому важно заранее определить начальное значение счётчика и правило его изменения.

Условие продолжения цикла — проверка, от результата которой зависит, будет ли тело цикла выполнено ещё раз. Например, условие может требовать продолжать действия, пока число не превысит 100. Проверка связывает ход алгоритма с текущими значениями величин. Чтобы понять, когда остановится цикл, нужно знать, когда условие станет ложным.

Как это устроено

Повторяющиеся действия удобно записывать одним циклом, потому что при отдельных командах пришлось бы снова и снова описывать одинаковый шаг. В цикле достаточно один раз задать его тело и правило повторения. Благодаря этому запись становится короче, а общий порядок действий заметнее. Кроме того, изменение правила выполняется в одном месте, а не во множестве похожих команд.

При каждом повторении выполняется тело цикла, поэтому важно точно определить, какие команды в него входят. Команды внутри тела выполняются в заданной последовательности: например, сначала к сумме добавляют число, затем переходят к следующему слагаемому. Если поменять порядок, значение переменной может измениться иначе. Разбор одного шага помогает проверить, что тело действительно выполняет нужное действие.

В цикле с заданным числом повторений количество шагов известно заранее. Счётчик показывает, какой шаг выполняется, и после каждого повторения меняется по установленному правилу. Когда достигнуто заданное число шагов, цикл заканчивается. Такой способ удобен, если заранее известно, сколько раз нужно выполнить одинаковую операцию.

В цикле, управляемом условием, продолжение зависит от проверки. Если условие проверяют перед телом, сначала решают, можно ли начинать очередное повторение; при ложном результате тело пропускается. Если проверка проводится после тела, первый шаг выполняется обязательно, и только затем решается, повторять ли его. Поэтому для описания алгоритма нужно уточнить не только условие, но и место его проверки.

Для завершения цикла недостаточно записать условие остановки: должно изменяться то, что влияет на это условие. В цикле с заданным числом повторений меняется счётчик, а в цикле с условием — например, число, которое сравнивают с границей. Если значение не меняется или движется в неверную сторону, остановка может не наступить. Перед запуском полезно проверить, как меняется величина на нескольких шагах и приведёт ли это изменение к завершению.

Сравнение циклов по способу завершения

СвойствоЦикл с заданным числом повторенийЦикл с условием
Что определяет число повторенийЗаранее заданное количество шаговРезультат проверки условия
Когда проверяется завершениеПосле выполнения заданного числа шаговПеред повторением или после выполнения тела
Роль счётчика или условияСчётчик отмечает выполненные шагиУсловие разрешает продолжить или требует остановиться
Как убедиться, что цикл завершитсяПроверить, что счётчик изменяется и достигнет заданного числаУбедиться, что изменяемая величина приведёт условие к остановке
Пример примененияВыполнить пять сложенийУдваивать число, пока оно не станет больше 100

Сначала определите, известно ли число повторений заранее: это поможет выбрать подходящий столбец. Затем проверьте, как меняется счётчик или величина в условии и в какой момент происходит проверка. Так можно заранее заметить, выполнится ли тело хотя бы один раз и остановится ли цикл.

Разбор задач

1. Сумма 1 + 2 + 3 + 4 + 5

Нужно сложить пять последовательных чисел, поэтому удобно использовать цикл с известным числом повторений. В качестве накопителя суммы возьмём переменную S, а переменная i будет обозначать очередное слагаемое. Начальное значение суммы равно нулю, чтобы при первом сложении в ней не было лишнего числа. После каждого шага переходим к следующему слагаемому.

  1. Задаём S = 0 и i = 1.
  2. Пять раз выполняем тело: S = S + i.
  3. После каждого шага увеличиваем i на 1, чтобы взять следующее слагаемое.
  4. Получаем значения суммы: 1, 3, 6, 10, 15.

Последнее значение накопителя включает все пять слагаемых, значит повторений было достаточно и ни одно число не пропущено. Ответ: сумма равна 15.

2. Увеличение числа на 3 с выводом результата

Пусть начальное число равно 2, а увеличить его нужно четыре раза. Вывод требуется после каждого шага, поэтому команду вывода помещаем в тело цикла вместе с увеличением числа. Счётчик поможет не перепутать количество повторений. Проследим все изменения по порядку.

  1. Задаём число x = 2 и счётчик i = 0.
  2. Повторяем тело, пока i меньше 4: увеличиваем x на 3.
  3. Увеличиваем i на 1, затем выводим новое значение x.
  4. После шагов получаем и выводим 5, 8, 11, 14.

Проверка счётчика показывает, что тело выполнено четыре раза, а начальное значение 2 не выводится, потому что вывод происходит после увеличения. Ответ: алгоритм выводит 5, 8, 11 и 14.

3. Удваивание числа до значения больше 100

Пусть начальное число равно 7, и после каждого удваивания нужно выводить результат. Условие продолжения сформулируем так: продолжать, пока x не больше 100. Перед каждым шагом проверяется именно текущее значение, поэтому нужно проследить, когда проверка станет ложной. Изменение числа внутри тела приближает его к границе остановки.

  1. Задаём x = 7 и проверяем, не больше ли оно 100. Условие верно, поэтому удваиваем x.
  2. Получаем и выводим 14, затем повторяем проверку и получаем 28.
  3. Следующие значения после удвоения: 56 и 112; каждое выводим после изменения.
  4. Теперь x = 112, условие «x не больше 100» ложно, поэтому тело больше не выполняется.

Удвоение выполнялось, пока число до шага было не больше 100; поэтому последнее выведенное значение может оказаться больше границы. Ответ: выводятся 14, 28, 56 и 112, после чего цикл заканчивается.

Типичные ошибки

Считать, что цикл обязательно выполнится хотя бы один раз. Так думают, когда не учитывают проверку условия до тела. Если начальное условие ложно, повторение не начнётся. Проверь себя: подставь начальные значения в условие и выясни, какой результат получится.

Не изменять счётчик или величину из условия. Ошибка возникает, если сосредоточиться на командах тела и забыть о переходе к следующему шагу. Тогда проверка может каждый раз давать один и тот же результат, и цикл не завершится. Проверь, меняется ли нужная величина и приближает ли её изменение к остановке.

Помещать изменение счётчика вне тела цикла. В этом случае счётчик может измениться только до повторений или после них, а не на каждом шаге. Из-за этого алгоритм неверно считает количество выполнений. Проверь, что команда изменения расположена там, где срабатывает после каждого нужного повторения.

Неверно выбирать границу условия. Например, условия «x меньше 5» и «x меньше или равно 5» отличаются на граничном значении. Ошибка появляется, если не проследить сам последний шаг. Проверь алгоритм вручную на значении, равном границе, и сравни полученное число повторений с задачей.

Связь с другими темами

Для работы с циклами нужно уметь читать алгоритмы из последовательных команд и учитывать порядок их выполнения. Также пригодятся сравнение чисел, проверка условий и вычисления с переменными, потому что цикл опирается на меняющиеся значения. Циклы применяют при описании вычислений и в программировании. Они особенно полезны в задачах, где одно действие повторяется много раз.

Что запомнить

  • Цикл повторяет выполнение своего тела.
  • Все команды, которые должны повторяться, включают в тело цикла.
  • В цикле с заданным числом повторений количество шагов известно заранее.
  • В цикле с условием повторения зависят от результата проверки.
  • Счётчик или условие должны изменяться так, чтобы цикл мог завершиться.
  • Для проверки цикла полезно проследить несколько его шагов вручную.

Частые вопросы по теме

Чем цикл отличается от последовательности команд?

В обычной последовательности каждая команда выполняется один раз в заданном порядке. Цикл возвращает выполнение к своему телу, поэтому одни и те же команды могут повториться несколько раз.

Что называют телом цикла?

Тело цикла — команда или группа команд, которые выполняются при каждом повторении. Если команда должна срабатывать на каждом шаге, её нужно включить в тело.

Как понять, сколько раз выполнится цикл?

Если число повторений задано заранее, оно показывает количество шагов. Если цикл управляется условием, нужно проследить его проверки и изменения величин, от которых зависит условие.

Почему цикл может никогда не завершиться?

Так бывает, если счётчик или величина в условии не меняется либо меняется не в ту сторону. Тогда условие продолжения остаётся истинным, и алгоритм повторяет команды бесконечно.

Может ли тело цикла не выполниться ни разу?

Да, если условие проверяется до выполнения тела и с самого начала оказывается ложным. При проверке после выполнения тело сначала запускается, поэтому хотя бы один шаг будет сделан.

Спросить по теме параграфа

2.37. Алгоритмы с повторением (циклом)

Учебник

Оглавление →
Предмет
Математика
Учебник
"Математика (в 3-х частях)", Демидова Т.Е., Козлова С.А., Тонких А.П.