КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Встроенные предикаты Пролога
Для операций над числами в рассматриваемой версии Пролога имеются следующие арифметические предикаты: Предикат: Смысл: СУММА (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) r = 1
Предикаты БОЛЬШЕ и МЕНЬШЕ вместе с предикатом РАВНО могут использоваться для сравнения различных численных переменных и констант. А предикаты «неменьше» и «небольше» могут быть определены через отрицание предикатов БОЛЬШЕи МЕНЬШЕ:
|