Вложенные управляющие структуры |
||
Возможны различные вложения одной управляющей структуры в другую. Алгоритм (и блок-схема) при этом существенно усложняются. Поэтому желательно везде, где только возможно, применять метод пошаговой детализации, выделяя подзадачи с простыми алгоритмами. Если же сделать это не удается, то нужно использовать вложенные управляющие структуры. Рассмотрим основные виды вложений управляющих структур: | ||
Цикл внутри цикла |
Ветвление внутри цикла |
Цикл внутри ветвления |
Учебная задача |
||
Постановка задачи. |
Постановка задачи: Разработайте алгоритм, исполняя который "Стрелочка" оставит след в виде
пунктирной линии, начинающейся с шага
(шаг прыжок шаг прыжок и т.д.). Расстояние от А до Б неизвестно, но за
точкой Б
стоит стена. Рисуйте пунктирную линию, используя цикл. Для проверки
возможности прыжка используйте ветвление.
Исходное
положение "Стрелочки": | Образец для воспроизведения рисунка: |
Решение задачи. |
Решение задачи: Перемещение из А в Б в данной задаче равнозначно
движению до тех пор, пока Стрелочка не упрётся в стену. Значит, нужно
использовать цикл ПОКА с проверкой условия "впереди НЕ стена". Чтобы
получить след в виде пунктирной линии, в теле цикла надо повторять пару
команд "ШАГ ПРЫЖОК". Но прыжок можно сделать, только если есть свободное
место для прыжка, то есть условие "впереди НЕ стена" истинно. Таким образом, в теле цикла должна стоять команда ШАГ и вслед за ней ветвление в сокращенной форме, на ветви ТО которого стоит команда ПРЫЖОК. |
|
Исполнение алгоритма:
АЛГОРИТМ ПУТЬ_1 |
Представление алгоритма в виде блок-схемы:
|