Чтобы догадаться заранее, какие процедуры необходимы для решения задачи, а потом описывать только их, достаточно начать с общего плана. Этот план одновременно является и главным алгоритмом, а его пункты именами будущих процедур. Таким образом выясняются не только имена процедур, но и порядок, в котором их надо вызывать.
На следующем шаге можно переходить к уточнению отдельных пунктов общего плана, т.е. к написанию вспомогательных алгоритмов. Здесь можно применить тот же прием: сразу описывать процедуру, заменяя все предписания, которых нет в СКИ, вызовами новых процедур.
Понятно, что на каждом этапе придется последовательно уточнять пункты плана возникшего на предыдущем уровне. И так до тех пор, пока на самом нижнем уровне не получатся процедуры, состоящие только из команд, входящих в СКИ. Это и есть метод последовательного уточнения.
Представьте юного конструктора, котрый, перед тем как начать малопредсказуемую деятельность по соединению деталей, решается набросать рисунок будущего чуда техники, затем - чертежи его основных блоков, потом частей этих блоков и так до тех пор, пока не будет совершенно ясно, как эти мелкие части получаются из элементарных деталей конструктора.
Составить программу для исполнителя Ру, которая рисует картинку:
Если Вы помните, что
метод последовательного уточнения состоит в следующем:
можете попробовать решить эту задачу.
(Следуйте инструкциям в верхней части экрана.
Интересно: почему анимации, изображающие выполнение отдельных процедур, столь разного "качества"?)