Перейти к статье

 

Операторы APREPRO

Ниже представлены операторы, используемые в  APREPRO:

В таблицах 1-4 буквы a и b представляют собой переменные, числа, функции, или выражения, если не указано иное. В приведенных ниже таблицах также перечислены приоритеты и ассоциативность операторов. Приоритет определяет порядок, в котором операции должны быть выполнены. Например, в выражении:

3 * 4 + 6 / 2

сначала выполняются умножения и деления, а затем сложение, потому что умножение и деление имеют более высокий приоритет, чем сложение. Приоритет оператора может быть от 1 до 14, где 1 - это наименьший приоритет, а 14 - наивысший. Ассоциативность определяет, какая сторона выражений должна быть выполнена сначала. Например, для выражения:

 3 + 4 + 5 будет представлено как  (3 + 4) + 5 для левой ассоциативности, выражение a = b / c будет представлено как a = (b / c) для правой ассоциативности.

Арифметические операторы

Арифметические операторы объединяют два или более алгебраических выражения в одно алгебраическое выражение. Они имеют очевидные значения, за исключением операторов пред- и пост- инкремента и декремента. Операторы пре-инкремент и пре-декремент сначала увеличивают или уменьшите значение параметра на 1, а затем возвращают ее значение. Например, если a = 1, а затем b=++a, то оба параметра b и a будут равны 2. Пост инкремент и пост-декремент сначала возвращают значение параметра, а затем увеличивают его или уменьшают его на 1. Например, если a = 1, а затем b=a++ , то в итоге b равно 1 и a равно 2. Оператор остаток, % , возвращает целочисленный остаток. То есть от обоих выражений a и b берется целая часть, а затем вычисляется остаток. Для расчета остатка с плавающей запятой смотрите функцию  fmod в разделе Математические функции. Тильда ~ используется, как синоним оператора умножения, *,, для улучшения эстетики системы преобразования единиц APREPRO (однако, в Fidesys не поддерживается). Для некоторых пользователей более удобно вводить12~metre , чем 12*metre

Таблица 1. Арифметические операторы.

Синтаксис

Описание

Приоритет

Ассоциативность

a+b

сложение

9

левая

a-b

вычитание

9

левая

a*b, a~b

умножение

10

левая

a/b

деление

10

левая

a^b, a**b

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

12

правая

a%b

остаток

10

левая

++a, a++

пре-, пост-инкремент

13

левая

--a, a--

пре-, пост-декримент

13

левая

Операторы присвоения

Операторы присваивания объединяют параметр и алгебраическое выражение в единое алгебраическое выражение, а также устанавливают значение параметра равным алгебраическому выражению.
В левой части знака равенства могут быть указаны только параметры.

Таблица 2. Операторы присвоения.

Синтаксис

Описание

Приоритет

Ассоциативность

a=b

Параметру  'a' присваивается значение 'b'

1

правая

a+=b

Параметру 'a' присваивается значение 'a + b'

2

правая

a-=b

Параметру 'a' присваивается значение 'a - b'

2

правая

a*=b

Параметру 'a' присваивается значение 'a * b'

3

правая

a/=b

Параметру 'a' присваивается значение ' a / b'

3

правая

a^=b

Параметру 'a' присваивается значение 'a b'

4

правая

a**=b

Параметру 'a' присваивает значение 'a b'

4

правая

Операторы сравнения

Операторы сравнения объединяют два алгебраических выражения в одно выражение сравнения. Выражения сравнения и операторы могут использоваться только перед вопросительным знаком (?) в условном выражении.

Таблица 3. Операторы сравнения.

Синтаксис

Описание

Приоритет

Ассоциативность

a<b

верно, если 'a'меньше, чем 'b'

8

левая

a>b

верно, если 'a' больше, чем 'b'

8

левая

a<=b

верно, если 'a' меньше или равно 'b'

8

левая

a>=b

верно, если 'a' больше или равно 'b'

8

левая

a==b

верно, если 'a' равно 'b'

8

левая

a!=b

верно, если 'a' неравно 'b'

8

левая

Булевы операторы

Булевы операторы объединяют одно или несколько выражений сравнения в единое выражение сравнения. Если la и lb - два выражения сравнения, то:

Таблица 4. Булевы операторы

Синтаксис

Описание

Приоритет

Ассоциативность

1a || 1b

верно, если либо 'la', либо 'lb' верно.

6

левая

1a && 1b

верно, если оба выражения 'la' и 'lb' верны.

7

левая

!1a

верно, если 'la' неверно.

11

левая

Строковые операторы

Единственным поддерживаемым строковым оператором в настоящее время является операция объединения строк, которая
Обозначается //. Если a = "Hello" и b = "World", тогда:

c = a // " " // b

устанавливает значение параметра c равным "Hello World". Объединение имеет приоритет 14 и левую ассоциативность. Подробности о строковых функциях смотрите в разделе Строковые функции