Областью определения типа данных SET являются неупорядоченные совокупности подобных элементов. Тип данных SET является конкретизацией типа данных BAG. Необязательные нижняя и верхняя границы, задаваемые выражениями, имеющими целочисленные значения, определяют минимальное и максимальное число элементов в совокупности, определенной типом данных SET. Определенная типом данных SET совокупность не должна содержать двух или более одинаковых элементов.
Синтаксис: |
Правила и ограничения:
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 точек.