Язык логического программирования ПРОЛОГ. Бураков М.В. - 15 стр.

UptoLike

Составители: 

13
CLAUSES
hello:-write(“hello”).
Аргументом встроенного предиката write может являться любой допус-
тимый терм ПРОЛОГА. В случае, когда аргументом является переменная,
будет напечатано ее значение. Использование этого предиката позволяет
получать в запросе более подробную информацию о решении.
Таким образом, запросы к ПРОЛОГ–программе могут происходить
двумя способами – автоматически, при указании цели в разделе goal
программы, либо при реализации диалога с пользователем.
В процессе диалога часто бывает необходимо использовать ввод ин-
формации с клавиатуры. Для этого имеется набор встроенных предика-
тов ввода:
readln(X) /* ввод строки */
readchar(X) /* ввод символа */
readint(X) /* ввод целого числа */
readreal(X) /* ввод действительного числа */
Язык Turbo Prolog имеет также богатый набор встроенных предика-
тов для управления текстом, графикой, звуком, и т. д., но эти возмож-
ности достаточно традиционны. Для ознакомления с ними можно вос-
пользоваться HELP-файлом программы.
5. УПРАВЛЕНИЕ ПРОЦЕССОМ РЕШЕНИЯ ЗАДАЧИ
Использование предиката fail
В ПРОЛОГе реализован механизм поиска с возвратом (backtracking),
при котором система пытается отыскать все возможные решения зада-
чи. Механизм вывода программы запоминает те точки процесса унифи-
кации, в которых не были использованы все альтернативные решения,
а затем возвращается в эти точки и ищет решение по иному пути.
Однако поиск с возвратом выполняется автоматически только в тех
случаях, когда программа решает задачу в результате диалога с пользо-
вателем. Если же цель указана в разделе goal программы, то поиск окан-
чивается после нахождения первого решения задачи. В этом случае для
вывода всех решений используется предикат fail.
Предикат fail называют откатом после неудачи. Он вызывает искус-
ственное неуспешное завершение поиска, что позволяет получить все
возможные решения задачи.