На Горох
Информатика, 9 класс

§ 6. Циклические алгоритмы

"Информатика", Семакин И.Г., Залогова Л.А., Русаков С.В., Шестакова Л.В.

Объяснение темы В оглавлении: § 6. Циклические алгоритмы

Кратко о теме

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Сравнение видов циклов

ХарактеристикаЦикл с предусловиемЦикл с постусловиемЦикл с параметром
Когда проверяется условие или границаДо выполнения телаПосле выполнения телаПри сравнении параметра с границей; параметр изменяется на каждом шаге
Может ли тело не выполниться ни разуДаНетДа, если начальное значение не требует прохода до границы
Что определяет число повторенийРезультаты проверок условияРезультаты проверок после проходовНачальное значение, шаг и конечная граница
Для каких задач удобно применятьКогда повторять нужно, пока выполняется условиеКогда действие требуется выполнить хотя бы один разКогда число повторений заранее известно

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

Разбор задач

Задача 1. Записать алгоритм вывода пяти одинаковых сообщений. Число повторений задано заранее, поэтому удобно использовать цикл с параметром. Обозначим сообщение как «Привет», а параметр — i. При шаге 1 он примет пять значений от 1 до 5.

  1. Задать параметру i начальное значение 1.
  2. Пока i не превышает 5, вывести сообщение «Привет».
  3. После вывода увеличить i на 1 и снова проверить границу.

Ответ: тело цикла содержит команду вывода сообщения, а цикл выполняет его пять раз. При i = 6 проверка границы не проходит, и алгоритм заканчивается.

Задача 2. Вводить числа, пока не будет введён ноль, затем вывести их количество. Ноль служит признаком окончания, поэтому перед подсчётом нужно получить первое число. Если оно уже равно нулю, количество введённых ненулевых чисел равно нулю; это удобно учесть до запуска цикла.

  1. Обнулить счётчик и ввести первое число x.
  2. Пока x не равно нулю, увеличить счётчик на 1 и ввести следующее x.
  3. Когда введён ноль, условие станет ложным; вывести значение счётчика.

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

Задача 3. Найти наименьшее натуральное число, сумма цифр которого больше заданного S. Начнём с числа 1 и будем проверять числа по возрастанию. Для каждого числа вычислим сумму цифр; если она не больше S, перейдём к следующему числу.

  1. Положить n = 1 и вычислить сумму цифр числа n.
  2. Пока сумма цифр не больше S, увеличить n на 1 и заново вычислить сумму его цифр.
  3. Остановиться при первой сумме, превышающей S.

Ответ: найденное n — наименьшее подходящее натуральное число, потому что числа проверялись по возрастанию без пропусков. Увеличение n обеспечивает продвижение к условию завершения.

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

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

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

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

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

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

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

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

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

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

Чем циклический алгоритм отличается от линейного?

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

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

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

Какой цикл подходит, если заранее известно число повторений?

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

Почему цикл может стать бесконечным?

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

В чём главное отличие цикла с постусловием от цикла с предусловием?

В цикле с постусловием условие проверяют после выполнения тела, а в цикле с предусловием — до него. Поэтому тело цикла с постусловием выполняется хотя бы один раз.

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

§ 6. Циклические алгоритмы

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
9 класс
Учебник
"Информатика", Семакин И.Г., Залогова Л.А., Русаков С.В., Шестакова Л.В.