Последовательные ветвления

Сколько "ветвлений" может быть в алгоритме? Любое ветвление начинается с проверки (то есть с вычисления значения истинности) некоторого условия.
Для "Стрелочки" возможны только два условия – "впереди стена" и "впереди НЕ стена". При этом до начала исполнения алгоритма разработчику:
1) известно расположение стены – в случае "постоянной" стены;
2) не известно расположение стены. В этом случае стена называется "прыгающей". Она может находиться в одном из двух возможных положений.
В задачах с "прыгающими" стенками допускается одна, две или три пары "прыгающих" стенок. Значит, столько же будет проверок условия, то есть столько же и ветвлений.
Но стенки могут располагаться на поле по-разному относительно друг друга. Соответственно потребуется разработать алгоритмы либо с последовательными ветвлениями либо с вложенными ветвлениями.
Какие "ветвления" называются последовательными? Если в алгоритме второе ветвление следует только после того, как завершено предыдущее, то это – последовательные ветвления. Представление двух последовательных ветвлений:
 – на алгоритмическом языке:

если УСЛОВИЕ_1
    то серия команд1_1
    иначе серия команд1_2
всё
серия команд между ветвлениями
если УСЛОВИЕ_2
    то серия команд2_1
    иначе серия команд2_2
всё

 –  в виде схемы (блок-схемы):

Сколько раз будет исполнен алгоритм с "ветвлениями"? У каждого ветвления по две "ветви" с командами. В задачах с "прыгающими стенками" для того, чтобы проверить правильность работы алгоритма с одним ветвлением, его нужно исполнить два раза, меняя положение "прыгающей" стенки. Если алгоритм содержит два ветвления, то он будет исполняться четыре (22=4) раза. А если три ветвления, то – восемь раз (23=8). При этом не существенно, являются ли ветвления последовательными или вложенными.

Учебная задача

Постановка задачи. Постановка задачи: Разработайте алгоритм для перемещения исполнителя из точки А в точку Б с рисованием следа.

Исходное положение "Стрелочки":
- точка А;
- направление вправо.
Результат: "Стрелочка" в точке Б.

Решение задачи.

Решение задачи:
1. В точке А нужно проверить возможность перемещения "Стрелочки" в точку М. Если стены нет, перемещение составит всего один шаг, иначе стену надо обойти. Это первое ветвление.


2. Из точки М переместить "Стрелочку" в точку К.


3. В точке К нужно проверить возможность перемещения "Стрелочки" в точку Б. Если стены нет, перемещение составит всего один шаг, иначе стену надо обойти. Это второе ветвление.

Сравните два решения этой задачи:

Первый алгоритм  – без использования процедур. Последовательно "Стрелочка" преодолевает первую "прыгающую стенку", подходит вплотную ко второй и преодолевает её. Следовательно, алгоритм будет состоять из двух последовательных ветвлений, разделенных несколькими командами:

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