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

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

     8.2.4 Тип данных SET


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

   Синтаксис:

     303 set_type = SET [ 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:?].

d) Каждый элемент в экземпляре типа данных SET должен отличаться (то есть не являться эквивалентным экземпляром) от любого другого элемента того же экземпляра набора.

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

a_set_of_points : SET OF point;

Атрибут a_set_of_points может содержать ни одного или несколько объектов point. Каждый экземпляр объекта point (в экземпляре набора) должен отличаться от любого другого объекта point в наборе.

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

a_set_of_points : SET [0:15] OF point;

Теперь экземпляр атрибута a_set_of_points может содержать не более 15 точек.