Последовательные ветвления |
||
Сколько "ветвлений" может быть в алгоритме? | Любое ветвление начинается с проверки (то есть с вычисления значения истинности) некоторого условия.
Для "Стрелочки" возможны только два условия – "впереди стена" и "впереди НЕ стена". При этом до начала исполнения алгоритма разработчику: 1) известно расположение стены – в случае "постоянной" стены; 2) не известно расположение стены. В этом случае стена называется "прыгающей". Она может находиться в одном из двух возможных положений. В задачах с "прыгающими" стенками допускается одна, две или три пары "прыгающих" стенок. Значит, столько же будет проверок условия, то есть столько же и ветвлений. Но стенки могут располагаться на поле по-разному относительно друг друга. Соответственно потребуется разработать алгоритмы либо с последовательными ветвлениями либо с вложенными ветвлениями. |
|
Какие "ветвления" называются последовательными? | Если в алгоритме второе ветвление следует только после того, как завершено предыдущее, то это – последовательные ветвления. Представление двух последовательных ветвлений: | |
– на алгоритмическом языке:
если УСЛОВИЕ_1
|
– в виде схемы (блок-схемы):
|
|
Сколько раз будет исполнен алгоритм с "ветвлениями"? | У каждого ветвления по две "ветви" с командами. В задачах с "прыгающими стенками" для того, чтобы проверить правильность работы алгоритма с одним ветвлением, его нужно исполнить два раза, меняя положение "прыгающей" стенки. Если алгоритм содержит два ветвления, то он будет исполняться четыре (22=4) раза. А если три ветвления, то – восемь раз (23=8). При этом не существенно, являются ли ветвления последовательными или вложенными. |
Учебная задача |
|||
Постановка задачи. | Постановка задачи: Разработайте алгоритм
для перемещения исполнителя из точки А в точку Б с рисованием следа.
Исходное положение "Стрелочки":
|
||
Решение задачи. | Решение задачи:
|
||
Сравните два решения этой задачи: |
|||
Первый алгоритм – без использования процедур.
Последовательно "Стрелочка" преодолевает первую "прыгающую стенку",
подходит вплотную ко второй и преодолевает её. Следовательно, алгоритм
будет состоять из двух последовательных ветвлений, разделенных
несколькими командами:
|
Применив метод пошаговой детализации к этой задаче, можно получить лучшее решение. Задача разбивается на три подзадачи, причем первая и третья – совпадают, так как обе пары стенок идентичны и подход к стенке осуществляется с одинаковых позиций. Поэтому здесь две процедуры: |