Скачиваний:
201
Добавлен:
17.06.2016
Размер:
2.69 Mб
Скачать

Арифметические выражения

Арифметические выражения состоят из операндов (чисел и переменных),

операторов (+, -, *, /, div и mod) и скобок. Идентификаторы в правой час-

ти от знака равенства (который является предикатом = ) составляют арифме-

тическое выражение.

A = 1 + 6 / ( 11 + 3 ) * Z

Шестнадцатиричные числа могут быть представлены числом с предшеству-

ющим знаком доллара. Например:

$FFF = 4095

86 = $4A + 12

Значение выражения может быть вычисленно, только если все переменные

в момент вычисления определены. При этом вычисления производятся в уста-

новленном порядке, определяемом приоритетом операции. Операции с высшим

приоритетом выполняются первыми.

Операции

Турбо Пролог может выполнять все четыре основные операции (сложение,

вычитание, умножение и деление) между целыми и вещественными числами. Тип

результата определяется в соответствии с таблицей 11.1

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

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

Операнд 1 Оператор Операнд 2 Результат

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

целое +,-,* целое целое

вещественное +,-,* целое вещественное

целое +,-,* вещественное вещественное

вещественное +,-,* вещественное вещественное

целое или целое или

вещественное / вещественное вещественное

целое div целое целое

целое mod целое целое

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

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

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

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

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

Соседние файлы в папке Документация