Для операций присваивания используют следующее:
результат = операнд1 оператор операнд2
В качестве оператора возможно указать "+" (сложение), "-"(вычитание), "*" (умножение), "/" (деление), div (целая часть деления) и mod (остаток деления).
К операторам сравнения относятся следующие:
= равно <> неравно
< меньше <= меньше или равно
> больше => больше или равно
Таблица приоритета операторов (с возрастанием номера приоритет уменьшается)
Оператор |
() |
* / |
mod div |
+ - |
Сравнения |
Проиритет |
1 |
2 |
3 |
4 |
5 |
Набор арифметических функции включает:
round(X) - округление;
abs(X) - модуль;
sin(X),cos(X),
tan(X),arctan(X) - тригонометрические функции;
eхр(Х) -е в степени X;
ln(X),lg(X) - натуральный и десятичный логарифмы;
sqrt(X) - корень.
random(X) генератор псевдослучайных чисел [0,1].
Пример 4-1, Решение квадратного уравнения Ах**2 + Вх + С = 0:
predicates
urawnenije(real,real,real)
otwet(real,real,real)
clauses
urawnenije(А,В,С) :-
D=B*B-4*A*C,
otwet(A.B,D),nl.
otwet(_,_,D):-
D<0,
wrlte(" нет действительного решения "),!
otwet(A,B,D):-
D=0
X=-B/(2*A),
write('двa действительных совпадающих корня = ",Х),!,
otwet(A,B.D):-
W=sqrt(D),
X1»(-B+W)/(2*A),X2=(-B-W)/(2*А),
Write('Xl = ",Х1," ; Х2 = ",Х2).
goal
urawnenije(l,-15,50). /*'выводится: X1=10 ; Х2=5 */