Практическая информатика




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


В языке Пролог имеется ряд встроенных функций для вычисления арифметических выражений, некоторые из которых перечислены в таблице.

X + YСумма X и Y
X - YРазность X и Y
X * YПроизведение X и Y
X / YДеление X на Y
X mod YОстаток от деления X на Y
X // YДеление нацело X на Y
X ** YВозведение X в степень Y
- XСмена знака X
abs(X)Абсолютная величина числа X
max(X,Y)Большее из чисел X и Y
min(X,Y)Меньшее из чисел X и Y
sqrt(X)Квадратный корень из X
random(Int)Случайное целое число в диапазоне от 0 до Int
sin(X)Синус X
cos(X)Косинус X
tan(X)Тангенс X
log(X)Натуральный логарифм (ln) числа X
log10(X)Десятичный логарифм (lg) числа X
float(X)Вещественное число, соответствующее целому числу X
pi3.14159 (приближенное значение числа
)
е 2 .71828 (приближенное значение числа е)

Еще раз отметим, что Пролог старается скрыть различие между арифметикой целых и вещественных чисел везде, где это можно.

Для вычисления арифметических выражений в Прологе используется встроенный бинарный оператор is, который интерпретирует правый терм как арифметическое выражение, после чего унифицирует (если возможно) результат вычисления с левым термом (обычно с переменной). Приоритет выполнения арифметических операций является традиционным. Круглые скобки используются для изменения порядка вычислений. В следующих примерах переменная X унифицируется со значениями арифметических выражений:

?- X is 2.5 + 2.5. X = 5 Yes

?- X is 4/(2+1). X = 1.33333 Yes

?- X is cos(3*pi). X = -1 Yes

?- 1 is sin(pi/2). Yes

?- 1.0 is sin(pi/2). No

Поясним несколько неожиданный ответ Пролога в последнем запросе. Значение sin(pi/2) автоматически округляется предикатом is до целого значения 1, которое не удается унифицировать с вещественным числом 1.0. Предикат float заставит считать значение sin(pi/2) вещественным числом:

?- 1.0 is float( sin(pi/2)). Yes

Для сравнения арифметических выражений используется ряд операторов. Цель X > Y (больше) будет успешна, если выражение X будет соответствовать большему числу, чем выражение Y.




Содержание  Назад  Вперед