Алгодром


13. Команда повторения "ДЛЯ"

Ситуация, когда какую-то серию команд нужно выполнить последовательно (с заданным шагом S) для значений в некотором диапазоне (от MIN до MAX), встречается в информатике достаточно часто.

Для ее описания можно воспользоваться следующими командами:
i := MIN
нц пока i <= MAX
  Серия команд
i := i + S
кц

Однако, в алгоритмическом языке для этого случая есть специальная команда - цикл "для".


Общий вид:

нц для i от MIN до MAX шаг S
  Серия команд
кц


Выполнение

Блок-схема выполнения (случай S>0):

 

 

Если MIN меньше, чем MAX, то:

Серия команд выполняется сначала для i=MIN, затем для i=MIN+S, затем для i=MIN+2S, затем для i=MIN+3S и т.д.

При каждом следующем выполнении значение i будет увеличиваться на S.

Последний раз серия будет выполнена для i=MIN+kS, где k такое, что MIN+kS <= MAX, но MIN+(k+1)S > MAX.
После завершения цикла значение i будет равно MIN+(k+1)S.

 

 


Блок-схема выполнения (случай S<0):

В этом случае удобно переписать команду в виде:
нц для i от MAX до MIN шаг S
  Серия команд
кц

 

Если MAX больше, чем MIN, то:

Серия команд выполняется сначала для i=MAX, затем для i=MAX-|S|, затем для i=MAX-2|S|, затем для i=MAX-3|S| и т.д.

При каждом следующем выполнении значение i будет уменьшаться на |S|.

Последний раз серия будет выполнена для i=MAX-k|S|, где k такое, что MAX-k|S| >= MIN, но MAX-(k+1)|S| < MIN.
После завершения цикла значение i будет равно MAX-(k+1)|S|.

 


Демонстрация: "Не ДЛЯ тебя ли ..?"

1. Допустимыми значениями параметров цикла являются целые числа от -9 до 99.

2. Попробуйте найти (в том числе и при отрицательном шаге) значения параметров, при которых тело цикла будет выполняться:

- один раз;
- два раза;
- ни разу;
- три раза;
- пять раз;
- бесконечно.

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

- количество повторений тела цикла;
- значение величины i после окончания цикла.