Правила и факты, имеющие в качестве заголовка один и тот же предикат, должны быть сгруппированы в рамках одного блока, т.е. следовать в программе друг за другом.
311
Переменные в предикатах во время выполнения Пролог-программы могут находиться в двух состояниях: конкретизированном или свободном (неконкретизированном). Переменная является свободной, если ей не присвоено значение, в противном случае переменная является конкретизированной.
В теле правила, кроме объявленных в программе предикатов, могут использоваться стандартные предикаты и операции сравнения.
Стандартные предикаты выполняют разнообразные функции по вводу-выводу, работе с файлами, выполнению функций DOS, обработке строк, поддержке графического режима, обеспечению интерфейса с другими системами программирования и т.д. Описание основных стандартных предикатов Турбо-Пролога рассматривается ниже.
В правилах можно использовать следующие основные операции сравнения: < (меньше), > (больше), = (больше или равно), = (равно), <> или >< (не равно). Сравнивать между собой можно выражения и переменные.
Операция = (равно) устанавливает соответствие между выражениями правой и левой частей предиката Х=Y - предикат этот записан в привычной инфиксной форме. В процессе согласования переменных используются следующие соглашения:
Раздел goal содержит запрос к программе, называемый внутренним.Для внутреннего запроса Пролог осуществляет поиск только первого подходящего решения. При этом система не сообщает о результатах найденного решения (успешное или нет). Полученные при сопоставлении значения переменных, входящих в предикаты запроса, также не отображаются на экране. Эти действия должен запрограммировать программист с использованием стандартных предикатов для вывода данных.
Раздел описания целей (goal) в компилируемой программе может отсутствовать, тогда в диалоговом окне после запуска программы на выполнение можно ввести внешний запрос. При использовании внешнего запроса Турбо-Пролог отыскивает все варианты решений и в этом же окне выводятся значения переменных предикатов запроса и сообщение об успешном или не успешном решении.
312
308 :: 309 :: 310 :: 311 :: 312 :: Содержание