Статус документа
Статус документа

ГОСТ Р ИСО 10303-11-2009 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS

     8.2.3 Тип данных BAG


Областью определения типа данных BAG являются неупорядоченные совокупности подобных элементов. Необязательные нижняя и верхняя границы, задаваемые выражениями, имеющими целочисленные значения, определяют минимальное и максимальное число элементов в совокупности, определенной типом данных BAG.

   Синтаксис:

     180 bag_type = BAG [ bound_spec] OF instantiable_type .
     185 bound_spec = ' [ ' bound_1 ' : ' bound_2 ' ] ' .
     183 bound_1 = numeric_expression .
     184 bound_2 = numeric_expression .


Правила и ограничения:

a) Выражение bound_1 должно иметь целочисленное значение, большее или равное нулю. Оно задает нижнюю границу, определяющую минимальное число элементов, которое может содержаться в экземпляре пакета этого типа данных. Выражение bound_1 не должно иметь неопределенного (?) значения.

b) Выражение bound_2 должно иметь целочисленное значение, большее или равное значению bound_1, либо неопределенное (?) значение. Оно задает верхнюю границу, определяющую максимальное число элементов, которое может содержаться в экземпляре пакета этого типа данных. Если значение данного выражения является неопределенным (?), то число элементов в экземпляре пакета этого типа данных не ограничено сверху.

c) Если элемент bound_spec опущен, то границы пакета определяются как [0:?].

Пример - В данном примере атрибут a_bag_of_points определен как пакет объектов point (объекты point относятся к именованному типу данных, который объявлен в другом месте).

a_bag_of_points : BAG OF point;

Экземпляр атрибута a_bag_of_points может содержать ни одного или несколько объектов point. Один и тот же экземпляр объекта point может появиться несколько раз в экземпляре a_bag_of_points.

Если требуется, чтобы экземпляр атрибута a_bag_of_points содержал, по крайней мере, один элемент, то в спецификации нижняя граница должна быть определена следующим образом:

a_bag_of_points: BAG [l:?] OF point;

Экземпляр атрибута a_bag_of_points теперь должен содержать, по крайней мере, один объект point.