Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Domains




name, sport =string

Во время исполнения программы при включенной трассировке в специальном окне трассировки будет отображаться следующая информация:

- после слова "CALL" будет указано имя выполняемого предиката (текущая подцель) и его параметры, например: CALL: likes(”Олег”, _);

- после слова "FAIL" будет выводиться имя текущей подцели, которая не была достигнута;

- после слова "RETURN" будет выводиться результат вычисления текущей подцели, в случае успеха. При этом если у подцели есть еще альтернативы, к которым возможен возврат, то перед именем предиката высвечивается звездочка ("*");

- слово "REDO" перед именем предиката указывает на то, что произошел возврат и происходит вычисление альтернативного решения.

Переход от подцели к подцели вызывается нажатием функциональной клавиши F10. При этом в окне редактирования выполняющуюся подцель указывает курсор, она также отображается в окне трассировки с параметрами и дополнительной информацией.

Директива nowarnings используется для подавления предупреждения системы о том, что какая-то переменная встречается в предложении только один раз. Эту директиву стоит использовать только в хорошо отлаженных программах. Как правило, для подавления предупреждения: "WARNING: The variable is only used once" достаточно заменить переменную, которая встретилась только один раз, на анонимную переменную.

С помощью директивы include при компиляции в исходный текст можно вставить содержимое некоторого файла.

Многие директивы компилятора могут быть не только расположены в тексте программы, но и установлены в меню среды разработки Турбо Пролога (Options->Compiler->Directives). Значение директивы компилятора, указанное в тексте программы, имеет более высокий приоритет, чем значение, установленное в меню.

 

Описание задачи на Турбо-Прологе

Основные понятия Турбо-Пролога

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

Объекты могут быть объединены в классы, обладающие определенными свойствами. Элементы этих классов являются конкретными объектами предметной области. Для представления конкретного объекта в программе на Прологе используется константа. Константа – это число или символическое имя объекта. Примеры констант: mary, 54, 8.09, ”Иванов”.

Символическое имя (атом) – это неразрывная цепочка латинских букв, цифр и символа подчеркивания, начинающаяся со строчной латинской буквы.

Для именования объектов и их свойств могут использоваться строки – последовательности любых символов, заключенных в двойные кавычки.

Для описания в программе некоторого объекта, принадлежащего определенному классу, используется переменная. Переменная в программе представляется своим именем. Имя переменной в Прологе – это цепочка латинских букв или цифр, начинающихся с прописной латинской буквы. Примеры имен переменных: F, Dog, St7.

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

<имя отношения>(<имя объекта 1>,…,<имя объекта n>)

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

Предикат – это логическая функция от n аргументов, имеющая только два значения ”истина” и ”ложь”. Синтаксис предиката:

<имя предиката>(<аргумент 1>,…,<аргумент n>)

При описании имя предиката совпадает с именем отношения, а аргументы предиката – это связываемые отношением объекты. Если описываемое предикатом отношение имеет место в предметной области, то предикат принимает значение ”истина”, иначе значение предиката ”ложь”. В качестве имени предиката используется цепочка латинских букв и цифр, начинающихся со строчной латинской буквы. Допустимо использовать знак подчеркивания. Примеры предикатов: likes(mary, sport), bank_book(“Таня”, 1000).

Знания о предметной области выражаются на языке Пролог в виде предложений, называемых утверждениями (CLAUSES). Каждое утверждение заканчивается точкой и описывает какое-либо отношение, свойство, объект или закономерность. Структура утверждения имеет одну из форм:

<заголовок>. /*факт*/

или

<заголовок>:- <тело>. /*правило*/

где заголовок является предикатом и полностью характеризует описываемое отношение.

Тело утверждения состоит либо из одного предиката, либо из списка предикатов, разделенных знаками ”, ”, ”; ”, ” not ”, соответствующим логическим операциям ”и”, ”или”, ”не”. Таким образом, тело утверждения является логическим выражением. Каждый входящий в это выражение предикат описывает какое-либо отношение. Знак ” :- ” соответствует слову ”если”. Утверждение читается так: «Отношение, стоящее в заголовке будет истинным, если истинно логическое выражение, находящееся в теле утверждения».

 

Факты

Все утверждения программы на Прологе делятся на факты, правила и запросы. Факты отражают текущее состояние предметной области, содержат конкретную информацию и являются истинными предикатами. Факты соответствуют простым безусловным высказываниям.

 

 

Синтаксически правильно записанный факт имеет следующую структуру предиката:

<имя отношения> (<список аргументов>).

В списке аргументов перечисляются имена объектов (не более 255), связанных данным отношением. Аргументы в списке отделяются друг от друга запятыми, в некоторых случаях могут отсутствовать. Если аргумент представляет собой имя конкретного объекта (свойства) или число, то он является константой Пролога.

Определяя с помощью фактов отношения между объектами, необходимо учитывать порядок, в котором перечисляются их имена внутри круглых скобок. Следует учитывать, что одно и то же утверждение, записанное в виде фактов, может по-разному интерпретироваться. Только автор программы определяет истинную интерпретацию имен объектов и порядок следования аргументов, и им он должен следовать в процессе написания всей программы, отражая в комментариях смысл записанных им высказываний. Комментарий – это текст, заключенный между символами “/* … */” или строка, начинающаяся со знака “%”.

 





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 481 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Лаской почти всегда добьешься больше, чем грубой силой. © Неизвестно
==> читать все изречения...

2419 - | 2289 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.