Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Для операций над числами в рассматриваемой версии Пролога имеются следующие арифметические предикаты:
Предикат: Смысл:
СУММА (x,y,z) х + у = z
ПРОИЗВ (x,y,z) х*у = z
ЧАСТНОЕ (x,y,z) [х/у] = z
ОСТАТОК (x,y,z) х - [х/у] = z
РАВНО (х,у) х = у
БОЛЬШЕ (х,у) х > у
МЕНЬШЕ (х,у) х < у
Арифметические предикаты по смыслу и функциям существенно отличаются от арифметических операций в традиционных языках программирования. Прежде всего любой из этих предикатов вырабатывает логическое значение ИСТИНА или ЛОЖЬ в зависимости от того, имеет или не имеет решение арифметическая задача, представляемая предикатом.
Примеры:
? СУММА (2,2,5)
НЕТ
? СУММА (2,2,z)
z=4
? СУММА (х,2,5)
х = 3
Таким образом, арифметические предикаты позволяют решать простейшие арифметические уравнения с одной или несколькими переменными, автоматически производя соответствующие вычисления, если эти решения существуют. Однако обращение к предикатам, связанным с умножением и делением целых чисел, может дать отрицательный результат из-за отсутствия решений в некоторых случаях:
? ПРОИЗВ (2,у,5)
НЕТ
? ЧАСТНОЕ (5,2,z)
z= 2
? ОСТАТОК (5,2,r)
г = l
Предикаты БОЛЬШЕ и МЕНЬШЕ вместе с предикатом РАВНО могут использоваться для сравнения различных численных переменных и констант. А предикаты «неменьше» и «небольше» могут быть определены через отрицание предикатов БОЛЬШЕ и МЕНЬШЕ:
небольше (х,у) ← НЕ (БОЛЬШЕ (х,у));
неменьше (х,у) ← НЕ (МЕНЬШЕ (х,у));
Предикат РАВНО может использоваться также для сравнения значений переменных и констант. При этом переменные могут быть и числовыми, и символьными, и других типов. Примеры:
? РАВНО (5,z)
z = 5
? РАВНО (х.миша)
х = Mишa
? РАВНО (коля,оля)
НЕТ
Вывод графических изображений на экран в настоящей версии интерпретатора может производиться с помощью следующих предикатов:
Дата публикования: 2014-10-25; Прочитано: 629 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!