logo search
TurboProlog / Документация / TOM_1

Порядок вычислений

Арифметические операции вычисляются в следующем порядке:

1. Если выражение содержит подвыражение с скобках, подвыражение вы-

числяется первым.

2. Если выражение содержит операцию умножения (*) или деления

(/, div или mod), эти операции выполняются слева направо.

3. Наконец, выполняются сложение и вычитание, также слева направо.

В выражении A = 1+6/(11+3)*Z подразумевается, что Z имеет значение

4, путем вычисления определим значение переменной A.

1. (11 + 3 ) - первое вычисляемое подвыражение, так как оно в заклю-

чено в скобки. Оно равно 14.

2. Затем вычисляется 6/14, так как / и * вычисляются слева направо.

В результате получим 0.428571.

3. Далее 0.428571*4 дает 1.714285

4. Наконец, вычисляя 1+1.714285, получаем значение выражения

2.714285.

Если A принадлежит вещественному домену (real), то оно может полу-

чить значение 2.714285. Однако, если A принадлежит домену целого типа

(integer), оно получит значение 3 (заметим,что результат округляется до

ближайшего целого).

Таблица 11.2: Порядок операций

------------------------------

Операция Приоретет

------------------------------

+ - 1

*/mod div 2

- + (unary) 3

------------------------------