ГОСТ Р И С 0 10303-11 — 2009
Пусть т является нижней границей, а п — верхней, тогда в массиве имеется ровно п — т ♦ 1
элементов. Эти элементы проиндексированы подстрочными индексами от т до п включительно (см. 12.6.1).
П р и м е ч а н и е — Границы массива могут быть положительными, отрицательными или равными нулю, но
не могут быть неопределенными (?) (см. 14.2).
Правила и ограничения:
a) Оба выражения вспецификации границ (bound_1 и bound_2)должны иметь целочисленные значе
ния. Ни одно из них не должно иметь неопределенного (?) значения.
b
) Выражение bound_1 задает нижнюю границу массива. Оно задает наименьшее значение индекса,
допустимоедля элементов массива этого типа данных.
c) Выражение bound_2 задает верхнюю границу массива. Оно задает наибольшее значение индек
са, допустимое для элементов массива этого типа данных.
d) Значение выражения bound_1 должно быть меньше или равно значению выражения bound_2.
e) Если указано ключевое слово OPTIONAL, то массив этого типа данных может иметь неопределен
ное (?) значение водной или нескольких индексированных позициях.
0 Если ключевое слово OPTIONAL не указано, то массив этого типа данных не должен содержать
неопределенных (?) значений ни водной индексированной позиции.
д) Если указано ключевое слово UNIQUE, то каждый элемент массива этого типа данных должен
отличаться (то есть не быть эквивалентным экземпляром) от любого другого элемента того же массива.
П р и м е ч а н и е — Оба ключевых слова OPTIONAL и UNIQUE могут использоваться в одном и том же
определении типа данных ARRAY. Это не исключает многократного появления неопределенных (?) значений
элементов массива, поскольку сравнение неопределенных (?) значений дает результат UNKNOWN и. следова
тельно. условие уникальности не нарушается.
Пример — Данный пример показывает, как объявляется многомерный массив.
— первое измерение
— второе измерение
sectors :ARRAY [1 :10] OF
ARRAY [ 11 :14) OF
UNIQUE something;
Первый массив содержит 10 элементов типа данных ARRAY [11:14] OF UNIQUE something.
Атрибут с именем sectors содержит всего 40 элементов типа данных something. В каждом из
массивов ARRAY [11:14] не может быть повторяющихся элементов. Однако один и тот же
экземпляр объекта something может присутствовать в двух разных массивах ARRAY [11:14] одного
экземпляра атрибута sectors.
8.2.2 Тип данных LIST
Областью определения типа данных LIST являются последовательности подобных элементов.
Необязательные нижняя и верхняя границы, задаваемые выражениями, имеющими целочисленные значе
ния. определяют минимальное и максимальное число элементов всовокупности, определенной типом дан
ных LIST. В определении типа данных LIST может быть факультативно установлено, что в списке не могут
присутствовать одинаковые элементы.
Синтаксис:
250 listjype = LIST [ bound_spec ] OF [ UNIQUE ] instantiable_type .
185 bound_spec = ’ [’ bound_1 *:’ bound_2 ’ ] ’.
183 bound_1 = numeric_expressk>n .
184 bound_2 = numeric_express*on.
Правила и ограничения:
a) Выражение boundjl должно иметь целочисленное значение, большее или равное нулю. Оно зада
ет нижнюю границу, определяющую минимальное число элементов, которое может содержаться в списке
этого типа данных. Выражение boundjl недолжно иметь неопределенного (?) значения.
b
) Выражение bound_2 должно иметь целочисленное значение, большее или равное значению
b ou nd jl. либо неопределенное (?) значение. Оно задает верхнюю границу, определяющую максимальное
число элементов, которое может содержаться всписке этого типаданных. Если значениеданного
выраже ния является неопределенным (?). то число элементов в списке этого типа данных не ограничено
сверху.
c) Если элемент bound_spec опущен, то границы списка определяются как [0:?].
d) Если указано ключевое слово UNIQUE, то каждый элемент в списке этого типа данных должен
отличаться (то есть не являться эквивалентным экземпляром) от любого другого элемента того же
списка.
18