На Горох
Информатика

§ 26. Циклический алгоритм. Условие окончания цикла «пока»

"Информатика (в 2 частях)", Могилев А.В., Могилева В.Н., Цветкова М.С.

Объяснение темы В оглавлении: § 26. Циклический алгоритм. Условие окончания цикла «пока»

Кратко о теме

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

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

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

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

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

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

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

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

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

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

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

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

Поэтому цикл «пока» может завершиться, не выполнив тело ни разу. Например, при условии «счётчик < 5» начальное значение 8 сразу делает условие ложным. Начальные данные нужно выбирать так, чтобы первый проход был действительно нужен, если задача этого требует.

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

Работа цикла «пока» в зависимости от условия

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

Результат проверки условияДействие алгоритмаЧто происходит дальше
Условие истинно перед первой проверкойВыполняется тело циклаПосле тела условие проверяется снова
Условие ложно перед первой проверкойТело цикла не выполняетсяАлгоритм переходит к командам после цикла
Условие остаётся истинным после выполнения телаИзменённые данные не остановили повторенияНачинается следующий проход
Условие становится ложным после выполнения телаПоследний проход уже выполненАлгоритм выходит из цикла

Разбор задач

Задача 1. Записать алгоритм, который выводит числа от 1 до 5, используя цикл «пока». Сначала нужен счётчик первого числа, затем проверка границы и изменение счётчика после вывода.

  1. Задать начальное значение: i = 1.
  2. Пока i ≤ 5, вывести i.
  3. После вывода увеличить счётчик: i = i + 1.
  4. Когда i станет равным 6, условие будет ложным и цикл завершится.

Ответ: алгоритм выводит 1, 2, 3, 4, 5. Изменение счётчика обязательно, иначе условие i ≤ 5 не изменилось бы.

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

  1. Положить исходное число в переменную n, а счётчик делений обозначить k = 0.
  2. Пока n > 1, заменить n на результат деления на 2.
  3. После каждого деления увеличить k на 1.
  4. Когда n ≤ 1, прекратить цикл и вывести k.

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

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

  1. Задать сумму s = 0 и ввести первое число x.
  2. Пока x ≠ 0, прибавить x к s и ввести следующее число.
  3. При вводе нуля условие станет ложным, и ноль не попадёт в сумму.
  4. После цикла вывести s.

Ответ: программа выводит сумму всех чисел до первого нуля. Если ноль введён первым, тело не выполнится, а результатом останется 0.

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

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

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

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

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

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

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

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

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

  • В цикле «пока» условие проверяется перед каждым выполнением тела.
  • Тело выполняется только тогда, когда условие истинно.
  • Если условие ложно при первой проверке, цикл не выполняется ни разу.
  • После выполнения тела условие проверяется снова.
  • Изменение данных в теле должно приближать цикл к завершению.
  • Для завершения цикла условие продолжения должно стать ложным.

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

Почему цикл «пока» иногда не выполняется ни разу?

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

Когда проверяется условие цикла «пока»?

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

Чем условие продолжения отличается от условия остановки?

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

Что нужно изменить в теле цикла, чтобы он завершился?

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

Как понять, что цикл может стать бесконечным?

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

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

§ 26. Циклический алгоритм. Условие окончания цикла «пока»

Учебник

Оглавление →
Предмет
Информатика
Учебник
"Информатика (в 2 частях)", Могилев А.В., Могилева В.Н., Цветкова М.С.