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

17.3. Решение задач с использованием оператора цикла

"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо и Ю.А. Быкадоров, Е.Н. Войтехович

Объяснение темы В оглавлении: 17.3. Решение задач с использованием оператора цикла

Кратко о теме

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Виды операторов цикла и особенности их применения

ХарактеристикаЦикл с параметромЦикл с предусловиемЦикл с постусловием
Когда известно количество повторенийОбычно известно заранееМожет быть неизвестно заранееМожет быть неизвестно заранее
Когда условие проверяетсяПроверяется диапазон параметра перед очередным повторомДо выполнения телаПосле выполнения тела
Минимальное число выполнений телаЗависит от заданного диапазона01
Как изменяется управляющая переменнаяАвтоматически переходит к следующему значениюОбычно изменяется в теле циклаОбычно изменяется в теле цикла
Типичная форма записи на Pascalfor i := 1 to N dowhile условие dorepeat команды until условие
Подходящий тип задачОбработка заданного диапазонаПовторение, пока условие истинноПовторение, пока не наступит условие остановки

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

Разбор задач

Вывести натуральные числа от 1 до N

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

  1. Ввести N — верхнюю границу диапазона.
  2. Запустить цикл с параметром i от 1 до N. Параметр принимает целые значения по порядку.
  3. В теле цикла вывести i. После очередного вывода параметр переходит к следующему значению.

Ответ: программа выводит числа 1, 2, 3 и так далее до N включительно. Важно задать начало диапазона именно равным 1, а конец — N. Если N меньше 1, диапазон не содержит требуемых натуральных чисел.

Найти сумму квадратов чисел от 1 до N

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

  1. Ввести N и присвоить сумме значение 0. Это начальное значение не меняет будущий результат при сложении.
  2. Для каждого i от 1 до N вычислить i². Затем прибавить полученный квадрат к сумме.
  3. После завершения цикла вывести сумму. К этому моменту в ней собраны квадраты всех чисел диапазона.

Ответ: сумма равна 1² + 2² + … + N². Например, при N = 3 программа получает 1 + 4 + 9 = 14. Такой порядок действий позволяет на каждом повторении обрабатывать одно число и не хранить отдельно все квадраты.

Посчитать положительные числа до ввода нуля

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

  1. Присвоить счётчику значение 0 и ввести первое число.
  2. Пока введённое число не равно нулю, проверить, положительное ли оно. Если да, увеличить счётчик на 1.
  3. Внутри повторения ввести следующее число. После появления нуля цикл завершается, и программа выводит счётчик.

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

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

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

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

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

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

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

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

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

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

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

Как выбрать подходящий вид цикла для задачи?

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

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

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

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

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

Как правильно посчитать сумму или количество элементов в цикле?

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

Можно ли использовать один цикл внутри другого?

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

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

17.3. Решение задач с использованием оператора цикла

Учебник

Оглавление →
Предмет
Информатика
Класс
8 класс
Учебник
"Информатика. Учебное пособие для учреждений общего среднего образования с русским языком обучения", В. М. Котов, А. И. Лапо и Ю.А. Быкадоров, Е.Н. Войтехович