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

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

Рассмотрим простую задачу: необходимо определить сумму чисел на отрезке от 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, " "
  • кц