В качестве примера использования объединения структуры данных и процедур рассмотрим некоторые альтернативные спецификации модели логической схемы на рис. 14.1. Один метод - определить логические компоненты в таблице данных (табл. 14.1), где в процедурах обработки задается, какие нужны соединения сети и как работает схема. Геометрические данные в этой таблице включают координаты и параметры, необходимые, чтобы представить и разместить в нужных точках логические элементы. Все эти символы можно изобразить как многоугольные формы или как комбинации отрезков и эллиптических дуг. Метки всех компонентов также включены в таблицу, хотя их можно опустить, если символы отображены в виде легко распознаваемых форм. Затем можно использовать процедуры отображения элементов и построить связующие линии, основываясь на координатах элементов и заданном порядке их соединения. Для получения выхода схемы (двоичные значения) используется дополнительная процедура. Данную процедуру можно настроить так, чтобы отображался только конечный выход или выводились промежуточные выходные значения, иллюстрирующие внутреннюю работу схемы.
В качестве альтернативы графическую информацию модели можно задать в структуре данных. Соединяющие линии, а также логические элементы можно определить в таблице данных, в которой явно перечислены конечные точки всех линий схемы. Затем одна процедура может отобразить схему и рассчитать выход. В качестве другого крайнего случая можно полностью определить модель в процедурах, не используя внешние структуры данных.
Рис. 14.2. Одноуровневое иерархическое описание схемы, сформированной логическими элементами
Рис. 14.3. Двухуровневое иерархическое описание схемы производства ИЕРАРХИИ СИМВОЛОВ
Многие модели можно организовать в виде иерархии символов. Основные элементы модели определяются как простые геометрические формы, подходящие для моделей рассматриваемого типа. Затем данные базовые символы используются при формировании сложных объектов, иногда называемых модулями, которые также можно группировать в объекты более высокого уровня для различных компонентов модели. В простейшем случае модель можно описать одноуровневой иерархией частей-компонентов, как показано на рис. 14.2. В использованном выше примере схемы предполагается, что логические элементы размещены и связаны друг с другом прямыми линиями согласно правилам соединения, заданным с описанием всех логических элементов. Базовыми символами в этом иерархическом описании являются логические элементы. Хотя логические элементы сами по себе можно описать как иерархии, сформированные отрезками, эллиптическими дугами и текстом, данное описание было бы неудобным при построении логических схем, где простейшие компоновочные блоки - логические элементы. Для приложения, в котором требуется разрабатывать различные геометрические формы, базовые символы можно определить как отрезки и дуги.
Пример двухуровневой иерархии символов приведен на рис. 14.3. Здесь планируется размещать оборудование в упорядоченных рабочих зонах. В каждую рабочую зону поставляется набор мебели. Базовыми символами являются элементы мебели: рабочие столы, стулья, полки, стеллажи и т.п. Объекты более высокого порядка - рабочие зоны, которые сведены вместе с различными схемами размещения мебели. Чтобы определить экземпляр базового символа, задается его положение, размер и ориентация в каждой рабочей области. Положения указываются как координаты расположения в каждой рабочей области, а ориентации задаются как углы вращения, указывающие, как ориентированы символы. На первом уровне под корневым узлом дерева производства каждая рабочая область задается ее положением, размером и ориентацией на территории производства. Границу каждой рабочей области можно определить перегородкой (делителем), замыкающей ее и указывающей проходы между подразделениями.