ГОСТ Р И С 0 10303-11 — 2009
b
) Операторы отношения принимают в качестве операндов разные типыданных и выдают результаты,
имеющие тип данных LOGICAL (TRUE, FALSE или UNKNOWN).
c) Двоичные операторы принимают операнды типа данных BINARY и выдают результаты, имеющие
тоже тип данных BINARY.
d) Логические операторы принимают операнды типа данных LOGICAL и выдают результаты, имею
щие тоже тип данных LOGICAL.
e) Строковые операторы принимают операнды типа данных STRING и выдают результаты, имеющие
тоже тип данных STRING.
f) Агрегированные операторы комбинируют агрегированные значенияс другими агрегированными зна
чениями или с отдельными элементами разными способами и выдают результаты агрегированного типа.
д) Ссылочные и индексные операторы извлекают компоненты из экземпляров объектов и агрегиро
ванных значений.
Вычисление выражений осуществляется всоответствии с приоритетом входящих в выражение опе
раторов.
Значение выражения, заключенного в круглые скобки, вычисляется до того, каконо будет трактовать
ся как единый операнд.
Процесс вычисления осуществляется слева направо, при этом операторы с более высоким приорите
том вычисляются первыми. Правила приоритетов для всех операторов языка EXPRESS установлены в
таблице 10. Операторы водной строке имеютодинаковый приоритет, а строки упорядочены по уменьшению
приоритета.
Операнд, расположенный между двумя операторами, имеющими разные приоритеты, относится к
оператору, имеющему более высокий приоритет. Операнд, расположенный между двумя операторами с
одинаковым приоритетом, относится коператору, расположенному слева.
Т а б л и ц а 10 — Приоритет операторов
Приоритет
Описание
Операторы
1
Ссылки на элементы
[ ] - х
2Унарные операторы♦ - NOT
3Возведение в степень
• А
4Умножение/деление
* / DIV MOD AND 11
5Сложение/вычитание
- + OR XOR
6Отношение
= < > < = > = < > ;=; ;<>; IN LIKE
П р и м е ч а н и е — || является оператором построения сложного объекта.
Пример — Выражение -10"2 вычисляется как (-10)**2, давая в результате значение 100.
Выражение 10/20*30 вычисляется как (10/20)*30, давая в результат значение 15.0.
12.1 Арифметические операторы
Арифметическими операторами, которым требуется один операнд, являются тождество (+) и отрица
ние^). Операнд должен иметьчисловой тип (NUMBER. INTEGER или REAL). Результат оператора (+)равен
операнду, результат оператора (-) имеет знак, противоположный знаку операнда. Если операнд имеет
неопределенное (?) значение, то результат также будет иметь неопределенное (?) значение для обоих
операторов.
Арифметическими операторами, которым требуютсядва операнда, являются сложение (♦), вычита
ние (-), умножение (•). деление (/). возведение встепень (••). целочисленное деление (DIV) иделение по
модулю (MOD). Операнды должны иметьчисловой тип (NUMBER. INTEGER или REAL).
Операторы сложения, вычитания, умножения, деления и возведения встепень выполняют одноимен
ные математические операции. За исключением деления, они выдают целочисленный результат, если оба
операнда имеют тип данных INTEGER, и результат типа REAL — в остальных случаях [если при этом
ни один из операндов не имеет неопределенного (?) значения]. Результатом оператора деления (/)
является действительное число [если при этом ни один из операндов не имеет неопределенного (?)
значения].
69