> -- Илья Ермаков писал(а):
> Удивительно, как совершенно очевидная мысль, что если действие выполняется на 1 раз больше, чем остальное тело цикла, то оно неизбежно должно продублироваться, никак не доходит до людей...Илья, Вы заблуждаетесь. Дублирования можно избежать.
В качестве иллюстрации вот решение Вашейзадачки про покраску забора:
Вложение:
Fence.png [ 6.75 КБ | Просмотров: 26257 ]
В этом примере оператор <Покрасить стобл> выполнится ровно на один раз больше, чем оператор <Покрасить секцию>. При этом дублирования кода нет.
Думаю, что Ваша ошибка связана с тем стереотипом, что якобы проверка выхода из цикла может производиться только непосредственно перед телом цикла (цикл WHILE), либо сразу после него (цикл REPEAT). А на самом деле в общем случае проверка выхода из цикла может производится и в середине тела цикла, как в приведённом мной примере.
Пример реализации на КП:
## Код:
```
LOOP <Покрасить столб>
  IF <Забор закончился> THEN EXIT END;
  <Покрасить секцию>
END
```
