Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Арифметика



Арифметические утверждения присваивания имеют следующий

общий вид:

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

В качестве оператора возможно указать "+" (сложение), "-"

(вычитание), "*" (умножение), "/" (деление), div (целая часть

деления) и mod (остаток деления). Следующая таблица показывает

тип результата в зависимости от типов операндов и от оператора:

Операнд1 Операторы Операнда2 Результат
целое целое действительное действительное целое действительное целое   +, -, * +,-,* +,-,* +,-,*   / div,mod   целое действительное целое действительное целое, действительное целое   целое действительное действительное действительное   действительное целое  

К операторам сравнения относятся следующие:

= равно <> неравно

< меньше <= меньше или равно

> больше => больше или равно

Следующая таблица показывает приоритеты операторов, причем с

возрастанием номера приоритет уменьшается:

оператор () * / mod div + - сравнения
проиритет          

Набор арифметических функции включает:

round(X) - округление;

abs(X) - модуль;

sin(X),cos(X),

tan(X),arctan(X) - тригонометрические функции;

eхр(Х) -е в степени X;

ln(X),lg(X) - натуральный и десятичный логарифмы;

sqrt(X) - корень.

Кроме этого имеются еще бинарные функции, которые работают, с

16-разрядными целыми числами (конкретизированность (i,i,о));

результатом будет соответственное целое число:

bitand(X,Y,Z) - логическое И;

bitor(X,Y,Z) - логическое ИЛИ;

bitxor(X,Y,Z) - исключающее ИЛИ;

bitleft(X,Y,Z) - сдвиг влево и

bitrlght(X,Y,Z) - сдвиг вправо, причем освобождающиеся биты

заполняются нулями.

Для генерации псевдослучайных чисел имеется предикат

random(X),

где Х конкретизируется числом в диапазоне [0,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 */





Дата публикования: 2014-12-08; Прочитано: 236 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...