Составители:
Рубрика:
11
maximum(X,Y,Y):- X<Y.
Предикаты ПРОЛОГА не могут появляться в арифметических выра-
жениях. Если требуется, например, переменной R присвоить значение,
равное большему из двух выражений X и Y, умноженному на 3, то,
используя предикат maximum, это можно записать так:
maximum(X,Y,Z), R= 3*Z.
Вычислить длину гипотенузы по длинам катетов прямоугольного
треугольника можно с помощью конструкции:
gipotenuza(X,Y,Z):- Z = sqrt(X*X + Y*Y).
4. ЗАПРОСЫ К ПРОЛОГ-ПРОГРАММЕ
Запрос – это последовательность из одного предиката или множе-
ства предикатов, разделяемых запятыми (связка and) и завершающаяся
точкой. С помощью запросов можно установить истинность соответ-
ствующего выражения. Предикат запроса называется целью (goal).
Простые запросы, не содержащие переменных, называют да-нет-воп-
росами. Они допускают лишь два возможных ответа: “Yes” или “No”. В
случае ответа “Yes” говорят, что запрос завершился успехом, цель дос-
тигнута.
Например, если Программу 1 запустить на решение, то она выдаст
сообщение
goal: {цель},
что означает готовность к вводу задачи, которая, например, может быть
такой
goal: situ(petersburg, europe).
Ответом на этот вопрос будет:
Yes,
т. е. истинно (хотя в явном виде этого факта описано не было).
Использование переменных в запросах позволяет задавать более слож-
ные вопросы. Запросы с переменными могут иметь более одного реше-
ния. Первым всегда выводится то из решений, которое найдено пер-
вым. Сообщение “No” здесь также говорит об отсутствии очередного
решения.
Если ввести запрос к Программе 1, иначе:
goal: situ(X, europe),
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »