Операции Назад В начало Вперед

Компилятор арифметических выражений поддерживает следующие группы операций:

Математические операции. Все операции имеют по два операнда.

Операция

Типы операндов

Тип результата

Назначение

+

Все кроме boolean

Тип операндов

Для чисел - сложение, для строк - конкатенация

-

Все кроме boolean и string

Тип операндов

Вычитание

*

Целые и вещественные

Тип операндов

Умножение

/

Целые и вещественные

Вещественный

Деление

**

Целые и вещественные

Тип операндов

Возведение в степень

DIV

Целые

Целый

Деление нацело

MOD

Целые

Целый

Остаток

Логические операции. Все операции кроме Not имеют по два операнда. Операция Not имеет один операнд.

Операция

Типы операндов

Тип результата

Назначение

Not

boolean

boolean

Отрицание

Or

boolean

boolean

ИЛИ

And

boolean

boolean

И

Xor

boolean

boolean

Исключающее ИЛИ

=

Любые

boolean

Равно

<>

Любые

boolean

Неравно

>

Любые

boolean

Больше

<

Любые

boolean

Меньше

>=

Любые

boolean

Больше или равно

<=

Любые

boolean

Меньше или равно

Побитовые операции. Все операции имеют по два операнда.

Операция

Типы операндов

Тип результата

Назначение

Not

Целые

Целый

Отрицание

Or

Целые

Целый

ИЛИ

And

Целые

Целый

И

Xor

Целые

Целый

Исключающее ИЛИ

Shr

Целые

Целый

Сдвиг вправо

Shl

Целые

Целый

Сдвиг влево

Инкрементальные операции (доступны начиная с Атлантис 5.3.09). Все операции имеют по одному операнду.

Операция

Тип операнда

Тип результата

Назначение

++<операнд>

Целый

Тип операнда

Прединкремент. Увеличивает значение операнда на 1. Возвращает копию измененного значения операнда.

<операнд>++

Целый

Тип операнда

Постинкремент. Увеличивает значение операнда на 1. Возвращает копию значения операнда до изменения.

--<операнд>

Целый

Тип операнда

Предекремент. Уменьшает значение операнда на 1. Возвращает копию измененного значения операнда.

<операнд>--

Целый

Тип операнда

Постдекремент. Уменьшает значение операнда на 1. Возвращает копию значения операнда до изменения.

Ниже приведен приоритет операций в порядке убывания:

Примеры

Пример 1. Прединкремент

Message(++i);

действует аналогично коду:

Message(i + 1);
i := i + 1;

Пример 2. Постинкремент

Message(i++);

действует аналогично коду:

Message(i);
i := i + 1;

Пример 3. Предекремент

Message(--i);

действует аналогично коду:

Message(i - 1);
i := i - 1;

Пример 4. Постдекремент

Message(i--);

действует аналогично коду:

Message(i);
i := i - 1;

Версия

Инкрементальные операции доступны начиная с Атлантис 5.3.09.