Встроенные предикаты Пролога

Для операций над числами в рассматриваемой версии Пролога имеются следующие арифметические предикаты:

Предикат: Смысл:

СУММА (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

Предикаты БОЛЬШЕ и МЕНЬШЕ вместе с предикатом РАВНО могут использоваться для сравнения различных численных перемен­ных и констант. А предикаты «неменьше» и «небольше» могут быть определены через отрицание предикатов БОЛЬШЕ и МЕНЬШЕ:

небольше (х,у) <— НЕ (БОЛЬШЕ (х,у));

неменьше (х,у) <— НЕ (МЕНЬШЕ (х,у));

Предикат РАВНО может использоваться также для сравнения значений переменных и констант. При этом переменные могут быть и числовыми, и символьными, и других типов. Примеры:

? РАВНО (5,z)

z= 5

? РАВНО (х,миша)

х = миша

? РАВНО (коля.оля)

НЕТ

Вывод графических изображений на экран в настоящей версии интерпретатора может производиться с помощью следующих преди­катов:

ТОЧКА (х,у,с);

ЛИНИЯ (x,y,u,v,c);

ОКРУЖНОСТЬ (х,у,с);

где (х,у) и (u,v) — координаты точек на экране, а с — цвет точки. Конкретные значения кодов цветов и диапазоны значений коорди­нат точек на экране зависят от типа ЭВМ.

А. Графические предикаты:

Предикат: Смысл: Пример:

ФОН (с) задание цвета фона ФОН (8)

ТОЧКА (х,у,с) вывод точки ТОЧКА (0,0,2)

ЛИНИЯ (x,y,u,v,c) вывод отрезка линии ЛИНИЯ (0,0,50,50,4)

ОКРУЖНОСТЬ (х,у,с) вывод окружности ОКРУЖНОСТЬ (90,90,10, 6)

ЗАКРАСКА (х,у,с) закраска фигур ЗАКРАСКА (10,40,8)

Б. Предикаты ввода-вывода:

Предикат: Смысл: Пример:

ВЫВОД (<3начение>) вывод набора значений ВЫВОД («имя», х)

ВВОДСИМВ (s) ввод символьных данных

ВВОДЦЕЛ (n) ввод числовых данных

ПС перевод строки

В. Логические предикаты:

Предикат: Смысл: Пример:

ИСТИНА логическая константа

ЛОЖЬ логическая константа

НЕ (<Предикат>) отрицание предиката НЕ (РАВНО (z,0))

Добавить комментарий