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

Цикл "пока"

"Информатика", Семёнов А.Л., Рудченко Т.А.

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

Кратко о теме

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

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

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

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

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

Условие цикла — выражение, которое проверяется перед каждым выполнением тела цикла и определяет, продолжать ли повторения. Условие сравнивает значения или проверяет некоторое свойство, а результатом становится «истина» или «ложь». Оно нужно, чтобы алгоритм понимал, когда ещё выполнять команды. Например, условие «сумма меньше N» позволяет продолжать прибавление, пока сумма не достигла N.

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

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

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

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

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

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

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

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

Сравнение циклов «пока» и «N раз»

СвойствоЦикл «пока»Цикл «N раз»
Когда выбираютКогда число повторений заранее неизвестноКогда число повторений известно заранее
Что определяет число повторенийУсловие продолжения циклаЗаданное число N
Проверяется ли условие перед выполнением телаДа, перед каждым выполнениемНет, повторения задаются числом
Может ли тело не выполниться ни разуДа, если условие сразу ложноПри N = 0 — да; при положительном N — нет
Что нужно предусмотреть для завершенияИзменение данных, чтобы условие стало ложнымЗаданное число повторений

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

Разбор задач

Движение до препятствия

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

  1. Условие продолжения — «перед исполнителем свободно»: только тогда можно двигаться.
  2. Поставим проверку перед командой движения, чтобы сначала узнать, разрешён ли следующий шаг.
  3. Запишем фрагмент: «нц пока перед исполнителем свободно; шаг вперёд; кц».

Ответ. Фрагмент алгоритма: «нц пока перед исполнителем свободно; шаг вперёд; кц». Если препятствие уже рядом, условие сразу ложно и команда шага не выполняется. Иначе исполнитель делает шаг, после которого условие проверяется снова.

Деление числа на 2

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

  1. Обозначим данное число через x и проверим условие x > 1.
  2. Пока условие истинно, заменяем x на x / 2.
  3. После каждого деления снова проверяем x > 1, а когда условие станет ложным, выводим x.

Ответ. Фрагмент алгоритма: «нц пока x > 1; x := x / 2; кц; вывести x». Например, для x = 8 значения после делений будут 4, 2 и 1, затем цикл завершится. Для любого положительного числа последовательное деление на 2 в итоге даст значение не больше 1.

Сколько раз прибавить 3

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

  1. В начале зададим сумму s = 0 и счётчик c = 0.
  2. Пока s < N, прибавим 3 к сумме и увеличим счётчик на 1.
  3. Когда s < N станет ложным, выведем c; это и будет число прибавлений.

Ответ. В теле цикла выполняются команды «s := s + 3» и «c := c + 1». Например, при N = 8 суммы будут 3, 6 и 9, поэтому цикл сделает три повторения. После этого сумма уже не меньше N, и алгоритм выведет 3.

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

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

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

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

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

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

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

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

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

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

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

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

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

Да. Условие проверяется до выполнения тела, и если при первой проверке оно ложно, команды цикла пропускаются.

Что произойдёт, если условие цикла сразу ложно?

Тело цикла не выполнится ни разу. Алгоритм продолжит работу с первой команды после цикла.

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

Так бывает, если условие всё время остаётся истинным. Например, команды тела не изменяют данные, от которых это условие зависит.

Как понять, какое условие записать в заголовке цикла?

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

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

Цикл "пока"

Учебник

Оглавление →
Предмет
Информатика
Класс
6 класс
Учебник
"Информатика", Семёнов А.Л., Рудченко Т.А.