Цикл «для» в Кумире

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

Рассмотрим простую задачу: необходимо определить сумму чисел на отрезке от 10 до 20.

Для решения поставленной задачи можно поступить следующим образом:

  1. Введем величину S, в которой будем накапливать сумму заданной последовательности чисел, и присвоим ей начальное значение S := 0
  2. Для контроля числового диапазона введем параметр, начальным значением которого будет значение левого края отрезка (текущее значение), а конечным - правого. Назначим параметру, исходя из условия задачи, шаг изменения равным 1.
  3. Добавим к величине S текущее значение параметра.
  4. Будем возвращаться к пункту 2, увеличивать текущее значение на шаг изменения параметра и выполнять пункт 3 до тех пор, пока не достигнем конечного значения.

Для описания подобного рода алгоритмов в Кумире можно использовать цикл «для», запись которого имеет следующий формат:

  • нц для i от i1 до i2
  • тело_цикла
  • кц

Величина i называется параметром цикла. i1 и i2 являются соответственно начальным и конечным значениями параметра. Параметр управляет количеством повторений тела цикла (i2i1 + 1). Параметр цикла должен иметь тип цел.

Важно! Параметр цикла нельзя изменять в теле цикла.

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

Анализ описания формата записи показывает, что цикл «для» может быть использован, если известно количество повторений тела цикла.

Приведем фрагмент кода выше рассмотренного алгоритма на языке Кумир.

  • S := 0
  • нц для i от 10 до 20
  • S := S + i
  • кц

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

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

  • нц для i от i1 до i2 шаг d
  • тело_цикла
  • кц

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

Приведем фрагмент кода, реализующий цикл с параметром для решения поставленной задачи:

Задача: выведите через пробел все четные числа от 100 до 0

{Фрагмент кода программы}

  • нц для i от 100 до 0 шаг -2
  • вывод i, " "
  • кц

Вопросы для самопроверки

  1. В каких случаях используется оператор цикла с параметром?
  2. Какую роль играет параметр цикла?
  3. Какой тип данных может принимать параметр цикла?
  4. Что представляет собой тело цикла?
  5. Может ли тело цикла с параметром не выполниться ни разу?
  6. С помощью какой величины можно управлять изменением параметра цикла?
  7. Как должен быть оформлен оператор цикла с параметром, чтобы тело цикла выполнялось при уменьшающихся значениях параметра цикла?