Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Целые числа




Целые числа могут быть положительные и отрицательные. Целое число всегда унифицируется с равным ему целым числом. Размер целых чисел ограничен только размером предоставляемого стека.

ЗАМЕЧАНИЕ. Данное утверждение верно для версий собранных с использованием библиотеки GMP(GNU multiple precision arithmetic library).

ASCII-коды символов также являются целыми числами.

РАЦИОНАЛЬНЫЕ ЧИСЛА

Рациональное число в SWI-prolog определено (в сборке с использованием GMP) аналогично рациональному числу в математическом смысле. Рациональное число представляется в виде пары двух целых чисел (деление на ноль запрещено) и обозначается функтором rdiv, который может выступать в роли функции двух аргументов (любые числа - не только целые), возвращающей рациональное число, либо в роли инфиксного оператора. При оперировании справа от оператора is только рациональными числами результат так же будет являться рациональным числом. Целое число является рациональным.

Для приведения числа с плавающей точкой к типу рационального числа используют функции rational(X) и rationalize(X), где X - число с плавающей точкой.rational(X) вычисляет рациональное число соответствующее машинному приближению числа X. rationalize(X) – «учитывает» ошибку округления и вычисляет рациональное число, соответствующее X (а не его машинному представлению).

ПРИМЕР.

?- X is rational(0.12).

X = 8646911284551353 rdiv 72057594037927936.

 

?- X is rationalize(0.12).

X = 3 rdiv 25.

 

Однако, можно убедиться, что для чисел, у которых машинное представление совпадает с самим числом, функции работают одинаково.

?- X is 1/256.

X = 0.00390625.

 

?- X is rational(0.00390625).

X = 1 rdiv 256.

 

?- X is rationalize(0.00390625).

X = 1 rdiv 256.

 

ПРИМЕРЫ использования рациональных чисел:

A is 2 rdiv 6 A = 1 rdiv 3

A is 4 rdiv 3 + 1 A = 7 rdiv 3

A is 4 rdiv 3 + 1.5 A = 2.83333

A is 4 rdiv 3 + rational(1.5) A = 17 rdiv 6

 

ЧИСЛА С ПЛАВАЮЩЕЙ ТОЧКОЙ

Числа с плавающей точкой представляются в виде С-типа double.

ПРИМЕРЫ чисел с плавающей точкой:

0.5 55.3 -83.0E21 2134.2 122.34e25

Число с плавающей точкой унифицируется с равным ему числом с плавающей точкой. Однако следует помнить, что операции над числами с плавающей точкой выполняются приближенно и попытка унификации двух чисел с плавающей точкой, которые кажутся идентичными, может окончиться неудачей.

СТРОКИ

Строки - это текстовые константы, которые представляются в виде последовательности ASCII-символов, заключенной между знаками двойных кавычек. С точки зрения внутреннего представления строка – список из ASCII-кодов символов, образующих строку.

ПРИМЕР

“He climbed and he climbed”

 

?- X="Hello". % пример унификации

X = [72, 101, 108, 108, 111]

Пустая строка записывается “” (ей соответствует пустой список). Если необходимо использовать знак двойных кавычек внутри строки, то его удваивают (“”).

Строка унифицируется с идентичной ей строкой, но не унифицируется с одиночным символом, даже если она единичной длины. Строки и атомы никогда не унифицируются, даже если они содержат одинаковые символы.





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 430 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Чтобы получился студенческий борщ, его нужно варить также как и домашний, только без мяса и развести водой 1:10 © Неизвестно
==> читать все изречения...

2407 - | 2289 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.