Ветвление и последовательная детализация алгоритма
Основные темы параграфа:
■ команда ветвления;
■ неполная форма команды ветвления;
■ пример задачи с двухшаговой детализацией.
Команда ветвления
Познакомимся еще с одной командой ГРИС. Она называется командой ветвления. Формат команды ветвления такой:
если<условие>
то<серия 1>
иначе<серия 2>
кВ
Служебное слово кв обозначает конец ветвления.
По-прежнему ГРИС может проверять только два условия: «впереди край?» или «впереди не край?». <серия> — это одна или несколько следующих друг за другом команд. Если <условие> справедливо, то выполняется <серия 1>, в противном случае — <серия 2>. Такое ветвление называется полным. Пример показан на рис. 1.11.
Неполная форма команды ветвления
В некоторых случаях используется неполная форма команды ветвления (рис. 1.12). Например:
если впереди край
То поворот
кв
Неполная форма команды ветвления:
если <условие>
то <серия>
кв
Здесь <серия> выполняется, если <условие> справедливо, в противном случае происходит переход к следующей после ветвления команде алгоритма.
Составим последнюю, сравнительно сложную программу для ГРИС. На этом примере вы увидите, что применение метода последовательной детализации облегчает решение некоторых «головоломных» задач.
Пример задачи с двухшаговой детализацией
Задача 6.Построить орнамент, состоящий из квадратов, расположенных по краям поля. Исходное положение ГРИС — в верхнем левом углу, направление — на юг (рис. 1.13).
Процедуру, рисующую цепочку квадратов в одном направлении, назовем РЯД. Процедуру, рисующую один квадрат, назовем КВАДРАТ. Сначала напишем основную программу:
![]() |
программаОрнамент
Нач
сделайРЯД
Поворот
сделайРЯД
Поворот
сделайРЯД
Поворот
сделайРЯД
Кон
Теперь напишем процедуры РЯД и КВАДРАТ:
![]() |
В процедуре РЯД в теле цикла содержится неполное ветвление. Структуру такого алгоритма можно назвать так: цикл с вложенным ветвлением.
На рисунке 1.14 приведена блок-схема процедуры РЯД.
Составление этой программы потребовало двух шагов детализации алгоритма, которые выполнялись в такой последовательности:
Теперь вам известны все команды управления графическим исполнителем. Их можно разделить на три группы: простые команды; команда обращения к процедуре; структурные команды. К третьей группе относятся команды цикла и ветвления.
![]() |
Коротко о главном
Команда ветвления имеет следующий формат:
если<условие>
то<серия 1>
иначе<серия 2>
кв
Если <условие> истинно, то выполняются команды, составляющие <серию 1>, если ложно — <серию 2>.
Неполная форма команды ветвления:
если<условие>
то <серия >
кв
Если условие истинно, то выполняется <серия>, если ложно, то сразу происходит переход к следующей за ветвлением команде алгоритма.
Сложные алгоритмы удобно строить путем пошаговой детализации.
Вопросы и задания
1. Что такое пошаговая детализация?
2. Из каких команд могут состоять вспомогательные алгоритмы последнего уровня детализации?
3. Какой формат имеет команда ветвления? Какие действия исполнителя она определяет?
4. Чем отличается полное ветвление от неполного?
5. Путем пошаговой детализации составьте программы управления графическим исполнителем для решения следующих задач:
• расчертить все поле горизонтальными пунктирными линиями;
• нарисовать квадраты во всех углах поля;
• расчертить все поле в клетку со стороной, равной шагу.
ЕК ЦОР: часть 2, глава 5, § 31. ЦОР №5, 9, 12, 15, 16.