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

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

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

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

Кратко о теме

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

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

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

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

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

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

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

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

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

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

В цикле «для» указывают начальное значение параметра, конечное значение и шаг изменения. Начальное значение показывает, с чего начинается перебор, конечное задаёт его границу, а шаг — насколько параметр меняется после повторения. Например, при переборе от 1 до 9 с шагом 2 параметр принимает значения 1, 3, 5, 7, 9. Шаг может быть больше единицы, а для движения в обратную сторону используют отрицательный шаг, если это предусмотрено записью цикла.

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

Число повторений находят, перечисляя значения параметра, которые попадают в диапазон при выбранном шаге. Например, при значениях от 2 до 10 с шагом 2 получаются 2, 4, 6, 8, 10 — пять повторений. При положительном шаге и начальном значении больше конечного тело обычно не выполнится ни разу: проверка не пройдёт сразу. Поэтому перед запуском полезно проверить первое значение и убедиться, что шаг направлен к границе диапазона.

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

Устройство и выполнение цикла «для»

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

Элемент циклаЧто задаётПример
Параметр циклаПеременную, которая перебирает значенияi
Начальное значениеПервое значение параметраi = 1
Конечное значениеГраницу переборадо 10
Шаг измененияИзменение параметра после повторения+1
Условие продолженияПроверку, остаётся ли параметр в диапазонеi не больше 10
Тело циклаКоманды, выполняемые при каждом значениивывести i
Число повторенийКоличество значений параметра в диапазонеОт 1 до 10 с шагом 1 — 10

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

Разбор задач

Вывести на экран числа от 1 до 10

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

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

Ответ: алгоритм «для i от 1 до 10 с шагом 1 выполнять: вывести i» выведет числа от 1 до 10 по порядку.

Найти сумму натуральных чисел от 1 до 100

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

  1. Создадим переменную S и зададим ей начальное значение 0.
  2. Организуем цикл для i от 1 до 100 с шагом 1.
  3. В теле цикла выполним присваивание S = S + i.
  4. После цикла выведем S; для проверки можно сгруппировать пары 1 + 100, 2 + 99 и так далее: получится 50 пар по 101.

Ответ: сумма равна 5050.

Вывести таблицу умножения для числа n или таблицу произведений

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

  1. Для таблицы числа n зададим i от 1 до 10 и в теле выведем n × i.
  2. Для прямоугольной таблицы выберем внешний параметр r для строк, например от 1 до 3.
  3. Внутри него зададим параметр c для столбцов, например от 1 до 4, и выведем r × c.
  4. После завершения внутреннего цикла внешний перейдёт к следующей строке; при необходимости перед этим можно перейти на новую строку вывода.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что произойдёт, если начальное значение больше конечного?

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

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

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

Зачем нужны вложенные циклы «для»?

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

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

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

Учебник

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