Читайте также: |
|
Элемент меню на рис. 114 называется атомом, если он имеет два вертикальных отростка.
ДРАКОН-редактор может выполнять несколько операций, среди которых важную роль играет команда “ввод атома” (рис. 116). Операция выполняется в два этапа: сначала пользователь выбирает нужный атом из меню, затем обращается к дракон-схеме и указывает точку, в которую нужно его ввести.
Атомы вставляются не куда попало, а только в разрешенные места, которые называются валентными точками дракон-схемы. Перечень точек включает:
! валентные точки заготовок (отмечены на рис. 115);
! валентные точки макроикон (отмечены на рис. 2);
! входы и выходы атомов.
Ввод атома производится так: происходит разрыв соединительной линии в выбранной пользователем валентной точке, после чего в место разрыва вставляется атом, как показано на рис. 116.
В реальных дракон-схемах валентные точки не изображаются, а подразумеваются.
Пример построения Дракон-схемы
«Примитив»
Дракон-схема строится на экране компьютера методом “сборки из кубиков”. Чтобы посмотреть, как это делается, нарисуем схему, изображенную на рис. 117. В начале работы пользователь вызывает на экран визуальное меню (рис. 114) и размещает его в удобном для себя месте, например в правом верхнем углу экрана. Остальная часть экрана используется как рабочее поле для построения дракон-схемы.
Схема, которую мы хотим построить (рис. 117), — это примитив. Поэтому прежде всего нужно поместить в рабочее поле заготовку-примитив. Для этого на первом шаге графического конструирования пользователь обращается к меню, подводит курсор к макроиконе “заготовка-силуэт”, преобразует ее в заготовку-примитив и копирует последнюю в рабочее поле экрана (рис. 118, шаг 1). На втором шаге пользователь вызывает из меню икону “действие”. Но куда ее поместить? Пользователь переводит курсор в рабочее поле и указывает точку в заготовке-примитив, в которой следует разорвать соединительную линию, чтобы в образовавшийся разрыв вставить выбранную икону. Результат операции виден на рисунке (рис. 118, шаг 2).
Два следующих шага выполняются аналогично: в дракон-схему вводятся еще одна икона “действие” и макроикона “переключатель” (рис. 118, шаги 3 и 4).
Далее следует операция “добавление варианта”, выполняемая без обращения к меню. С ее помощью модифицируется макроикона “переключатель”, к которой добавляется еще одна икона “вариант” (рис. 118, шаг 5).
Последующий ход строительства ясен из рис. 118 (шаги 6—8). После того как графический узор (слепыш) дракон-схемы построен, производится заполнение его текстом. Окончательный результат работы редактора показан на рис. 117.
Операция «Пересадка лианы»
Обезьяна, сидевшая на дереве, поймала свисавшую сверху лиану. Однако нижняя часть лианы приросла к стволу и не поддавалась. Обезьяна перегрызла ее зубами, уцепилась за конец и мигом перелетела на соседнее дерево, где намертво привязала лиану к ветке.
Нечто подобное умеет делать и ДРАКОН-редактор. Роль верхнего конца лианы играет выход иконы “вопрос” или “вариант”. Лиана — это присоединенная к нему последовательность шампур-блоков или просто соединительная линия. При некоторых условиях (подробно описанных в следующей главе) нижний конец лианы можно оторвать от своего места и присоединить в другую точку дракон-схемы. Такая операция называется пересадка лианы.
Выполнение этой операции не требует обращения к меню и осуществляется в два этапа. Сначала курсор подводится к нижнему концу лианы, который пользователь желает освободить (рис. 119, левая графа). Но куда его присоединить? Пользователь выбирает желаемую точку и отмечает ее курсором (рис. 119, средняя графа). Результат операции “пересадка лианы” показан на том же рисунке в правой графе.
Многие дракон-схемы, представленные в этой книге, построены с помощью пересадки лианы. Укажем некоторые из них: рис. 26 б, 27 б, 40, 41, 42, 57 в, 60 в, 67—74.
Операция “Заземление лианы”
Функция “пересадка лианы” универсальна в том смысле, что она применима и к примитиву, и к силуэту. В отличие от нее операция заземление лианы относится только к силуэту. Она служит для построения веток, имеющих несколько выходов (многоадресных веток). Для этого необходимо организовать в ветке разветвление (с помощью макроикон “развилка” или “переключатель”), затем оторвать присоединенную к ним лиану от прежнего места и присоединить ее через икону “адрес” к нижней горизонтальной линии силуэта, “заземлить” ее.
Операция “заземление лианы” проводится в два этапа без обращения к меню. Первый этап (отрыв нижнего конца лианы от своего места) осуществляется точно так же, как при пересадке лианы (рис. 120, левая графа). На втором этапе пользователь подводит курсор к нижней линии силуэта, указывая точку, куда лиана может дотянуться, не пересекая других линий (рис. 120, средняя графа). Это действие порождает автоматическое появление в нужном месте иконы “адрес”, через которую лиана и присоединяется к нижней линии (рис. 120, правая графа).
Заземление лианы использовалось при построении силуэтов с многоадресными ветками, например, на рис. 4, 6 а, 51–54, 84, 88, 89.
Пример построения
Дракон-программы «Силуэт»
Построим визуальную программу, изображенную на рис. 96. На первом шаге конструирования пользователь обращается к меню и вызывает в рабочее поле заготовку-силуэт (рис. 121, шаг 1). На следующем шаге с помощью операции “добавление ветки” (которая выполняется без обращения к меню) он модифицирует заготовку, вставляя в силуэт еще одну ветку (рис. 121, шаг 2). Дальнейший ход строительства ясен из рисунка: в шагах 3—8, 10—13 реализуется операция “ввод атома”, в шаге 9 — “заземление лианы”. Графическое конструирование заканчивается в момент получения желаемого слепыша (рис. 121, шаг 13).
Затем в иконах записываются текстовые операторы, после чего визуальная программа приобретает окончательный вид, показанный на рис. 96. Данная программа может выполняться методом интерпретации или же транслироваться в объектный код.
Формирование надписей «Да» и «Нет»
Вернемся к обсуждению рис. 121 и подробнее остановимся на шаге 13, на котором завершается графическое построение дракон-схемы и в качестве результата на экране возникает слепыш. Дело в том, что законченный чертеж-слепыш, сформированный при реальной работе ДРАКОН-редактора, имеет отличие от абстрактной дракон-схемы, изображенной на рис. 97. Последняя полностью лишена текста (не содержит ни одной буквы или цифры), а построенный редактором слепыш возле каждой иконы “вопрос” обязательно имеет надписи “да” и “нет”. Эти надписи появляются на дракон-схеме всякий раз, когда из меню вызывается элемент с иконой “вопрос” в ходе операции “ввод атома”. Согласно алгоритму этой операции редактор пишет “да” у нижнего выхода иконы “вопрос” и “нет” — у правого. Чтобы пользователь в случае необходимости мог поменять их местами, в редакторе предусмотрена операция “да-нет”. Применение последней к конкретной иконе “вопрос” приводит к тому, что слова “да” и “нет” у ее выходов меняются местами (при этом все остальные элементы дракон-схемы остаются на своих местах).
Выводы
1. Хотя общее число икон и макроикон языка ДРАКОН равно 45, для построения любой дракон-схемы достаточно иметь небольшое меню, содержащее всего 18 графоэлементов.
2. Визуальное меню существенно облегчает работу пользователя — оно дает возможность конструировать дракон-схему методом “сборки из кубиков”. Для этого служит операция “ввод атома”, позволяющая доставать “кубики” из меню и укладывать их в проектируемую дракон-схему.
3. Другие операции (“пересадка лианы”, “заземление лианы” и т. д.) разрешают вносить в схему логические детали и “украшения”, расширяющие ее функциональные возможности и улучшающие эргономическое качество.
4. В алгоритмах ДРАКОН-редактора реализован полный набор правил визуального синтаксиса, что освобождает пользователя от необходимости подробно запоминать синтаксические правила.
5. ДРАКОН-редактор создает только правильно построенные схемы и исключает возможность появления запрещенных схем. Отсюда вытекает, что при работе с ДРАКОН-редактором ошибки визуального синтаксиса принципиально невозможны.
Дата добавления: 2015-08-21; просмотров: 81 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Нужен ли стандарт для описания деятельности? | | | Прочие операции |