Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы искусственного интеллекта.doc
Скачиваний:
66
Добавлен:
10.02.2015
Размер:
80.38 Кб
Скачать

Основные разделы Prolog. Встроенные предикаты

Программа на Прологе состоит из нескольких программных секций:

Constant

Объявление констант

Domains

Определение типов данных

раздел domains содержит определения доменов,   которые описывают различные типы объектов,   используемых в программе,   если используются стандартные типы, то раздел может не использоваться;

Database

Объявление предикатов базы данных

Раздел Database содержит описание предикатов динамической

(внутренней)  базы данных,  которые являются предикатами базы данных и могут быть изменены в процессе работы программы без перекомпиляции, если программа такой базы данных не требует, то этот раздел может быть опущен;

Predicates

Объявление предикатов

раздел predicates служит для описания используемых программой

предикатов, этот раздел является обязательным;

Clauses

Определение фактов или правил

в раздел clauses заносятся факты и правила статической базы данных, которая и является собственно программой, этот раздел является обязательным;

Goal

Цель

в разделе goal  на языке Пролога формулируется цель(  запрос)   созданной программы. Составными частями при этом могут являться некие подцели, из

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

В пролог программе существуют встроенные предикаты, такие как:

  1. арифметические и логические (+,-,*,/,mod, div,<,>,=), такие предикаты позволяют решать простейшие арифметические уравнения, автоматически производя соответствующие вычисления.

  2. Предикаты ввода и вывода: readint (имя переменной) — для ввода целочисленной переменной; readreal (имя переменной); readchar (имя переменной); readln (имя переменной); write (список вывода) — только константы и пременные; nl – переводит курсор на новую строку; writef (список вывода) — форматный вывод.

  3. Управляющие предикаты: Exit — выполняет немедленный выход из программы; Fail - вынуждает завершиться предикат ложно и, следовательно, возвратиться к предыдущей точке разветвления; True — значение предиката всегда истинно; ! — Отсечение (прекращение перебора между головой дизъюнкта и данным знаком).

Арифметические вычисления и сравнения в прологе

Основные арифметические операции: +, -, *, /, mod, div;

Основные функции: abs, cos, sin, tan,arctan, exp, ln, log, sqrt, trunc, round.

В прологе имеется встроенный предикат = (операция соспоставления), которыйозначает сопоставление, если слева находится переменная, которая еще не получила значение.

Например A = 5, X = sin(A), Y = sqrt(A), write(X,” ”, Y)

В прологе используются операции сравнения: <,>,<=,>=.

Арифметические операции вычисляются в следующем порядке:

  1. если выражение содержит подвыражение в скобках, подвыражение вычисляется первым;

  2. если выражение содержит операции умножения (*) или деления (/, div или mod), эти операции выполняются слева направо;

  3. если выражение содержит операции сложения (+) и вычитания (-), они выполняются также слева направо.