Основы современных компьютерных технологий


Основы программирования - часть 4


Вместо двоеточия с дефисом можно использовать ключевое слово if, вместо запятой - ключевое слово and, вместо точки с запятой - ключевое слово or.

Правила и факты, имеющие в качестве заголовка один и тот же предикат, должны быть сгруппированы в рамках одного блока, т.е. следовать в программе друг за другом.

311

Переменные в предикатах во время выполнения Пролог-программы могут находиться в двух состояниях: конкретизированном или свободном (неконкретизированном). Переменная является свободной, если ей не присвоено значение, в противном случае переменная является конкретизированной.

В теле правила, кроме объявленных в программе предикатов, могут использоваться стандартные предикаты и операции сравнения.

Стандартные предикаты выполняют разнообразные функции по вводу-выводу, работе с файлами, выполнению функций DOS, обработке строк, поддержке графического режима, обеспечению интерфейса с другими системами программирования и т.д. Описание основных стандартных предикатов Турбо-Пролога рассматривается ниже.

В правилах можно использовать следующие основные операции сравнения: < (меньше), > (больше), = (больше или равно), = (равно), <> или >< (не равно). Сравнивать между собой можно выражения и переменные.

Операция = (равно) устанавливает соответствие между выражениями правой и левой частей предиката Х=Y - предикат этот записан в привычной инфиксной форме. В процессе согласования переменных используются следующие соглашения:

  • 1) если X - свободная переменная, a Y - конкретизированная, то при записи X=Y, переменная X станет конкретизированной и получит значение, равное Y;
  • 2) целые числа и строки всегда равны самим себе;
  • 3) две структуры равны, если они имеют одинаковые функторы, одинаковое число параметров и все соответствующие параметры равны между собой.
  • 4) если имеется запись вида Х=Y и обе переменные свободны, то они становятся сцепленными и при конкретизации одной из них вторая автоматически будет означена тем же значением.

Раздел goal содержит запрос к программе, называемый внутренним.Для внутреннего запроса Пролог осуществляет поиск только первого подходящего решения. При этом система не сообщает о результатах найденного решения (успешное или нет). Полученные при сопоставлении значения переменных, входящих в предикаты запроса, также не отображаются на экране. Эти действия должен запрограммировать программист с использованием стандартных предикатов для вывода данных.

Раздел описания целей (goal) в компилируемой программе может отсутствовать, тогда в диалоговом окне после запуска программы на выполнение можно ввести внешний запрос. При использовании внешнего запроса Турбо-Пролог отыскивает все варианты решений и в этом же окне выводятся значения переменных предикатов запроса и сообщение об успешном или не успешном решении.

312

308 :: 309 :: 310 :: 311 :: 312 :: Содержание




Начало  Назад  Вперед