Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 63889
Модуль Forms 63622
ТЕХНОЛОГИИ ДОСТ... 60470
Пример работы с... 59819
Имитационное мо... 55931
Реклама
Сейчас на сайте
Гостей: 9
На сайте нет зарегистрированных пользователей

Пользователей: 13,079
новичок: Openair
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование информационно-поисковой библиографической системы на gpss ...
База данных - рабочее место кассира на Delphi + бд Access
База данных - словарь терминов на Delphi + Пояснительная записка

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ С ПОМОЩЬЮ ПРОГРАММЫ НА ПРОЛОГЕ
Пролог - это язык программирования, предназначенный для представления и использования знаний о некоторой предметной области. Под предметной областью будем понимать множество рассматриваемых объектов и совокупность знаний о них. Любую взаимосвязь между объектами и (или) их свойствами назовем отношением. Так, например, для предметной области "Студенческая группа" характерными объектами будут студент, его фамилия, имя, отчество, номер группы, наименование факультета, номер специальности, курс обучения, изучаемые дисциплины, оценки, полученные на экзаменах, размер стипендии и т.д. Связи между конкретным студентом и номером группы, между его оценками и размером стипендии, между номером группы и факультетом, специальностью, курсом обучения будут являться отношениями. Таким образом, «Предметная область – это объекты и отношения».
Объекты могут быть объединены в классы, обладающие определенными свойствами. Элементы этих классов являются конкретными объектами предметной области. Для представления конкретного объекта в программе на Прологе используется константа. Константа – это число или символическое имя объекта.
Имена конкретных объектов, отношений, свойств образуются по определенным правилам, зависящим от версии (реализации) языка Пролог, и называются символическими именами. Ниже рассмотрим правила, характерные для большинства версий Пролога.
Символическое имя (атом) - это:
• либо цепочка цифр и латинских букв, включая символ подчеркивания, начинающаяся со строчной латинской буквы;
• либо любая последовательность символов (в том числе русских и прописных букв), заключенная в одиночные кавычки.
Например:
table1, stock_5, r5z, 'студент', 'машина', 'меню', 'Закон', 'список аргументов'.



Для описания в программе некоторого объекта, принадлежащего
определенному классу, используется переменная. Переменная в программе представляется своим именем. Имя переменной в Прологе - это цепочка латинских букв или цифр, начинающихся с прописной латинской буквы или символа подчеркивания. Примеры имен переменных: D, Leda, X, Y, Lokon, V2 и т. д.
Чтобы описать отношение, необходимо указать его имя и перечислить либо классы объектов, либо конкретные объекты, связываемые этим отношением.
<имя отношения>(<имя объекта1>,<имя объекта2>,…,<имя объекта n>)
Отношение характеризуется именем и числом аргументов. Число аргументов равно числу классов объектов, связанных этим отношением. Для описания отношений в программе на Прологе используются предикаты. Предикат – это логическая функция от n аргументов, имеющая только два значения «истина» и «ложь». Синтаксис предиката
<имя предиката>(<аргумент1>,< аргумент 2>,…,< аргумент n>)



При описании отношения имя предиката совпадает с именем отношения, а аргументы предиката – это связываемые отношением объекты. Если описываемое предикатом отношение имеет место в предметной области, то предикат принимает значение «истина», если оно несправедливо для данной предметной области, то значение предиката «ложь».
Знания о предметной области выражаются на языке Пролог в виде предложений, называемых утверждениями. Каждое утверждение заканчивается точкой и описывает какое-либо отношение, свойство, объект или закономерность. Структура утверждения проста и имеет одну из форм:
<заголовок>.
или
<заголовок>:- <тело>.



где заголовок является предикатом и полностью характеризует описываемое отношение.
Тело утверждения состоит либо из одного предиката, либо из списка предикатов, перечисленных через запятую. Каждый предикат описывает какое-либо отношение. Знак «:-» соответствует слову «если». Утверждение читается так: «отношение, стоящее в заголовке будет истинным, если истинны все предикаты (отношения), находящиеся в теле утверждения».
Совокупность утверждений образует программу на языке Пролог, пример одной из них, а именно: программы "Студенты", приведен ниже.
/* программа "Студенты" */
/* определение отношения "студент" с помощью фактов*/
'студент'('Орлова Л.И.',843). /* 1 */
'студент'('Семенова М.П.',134). /* 2 */
'студент'('Цуканова В.В.',943). /* 3 */

/* определение отношения "факультет" с помощью правила*/
'факультет'(NG,F):- /* 4 */
‘вторая_цифра’(NG,G2), /* 5 */
‘наим_фак’(G2,F). /* 6 */

/* определение отношения "вторая цифра" с помощью правила */
'вторая_цифра'(NG,G2):- /* 7 */
G1 is NG mod 100, /* 8 */
G2 is G1/10. /* 9 */

/* определение отношения "наименование факультета" с помощью фактов */
'наим_фак'(1,'РТФ'). /* 10 */
'наим_фак'(2,'ФЭ'). /* 11 */
'наим_фак'(3,'ФТА'). /* 12 */
'наим_фак'(4,'ФВТ'). /* 13 */
'наим_фак'(5,'ФКР'). /* 14 */

/* определение отношения "специальность" с помощью правила */
'специальность'(NG,NS):- /* 15 */
'третья_цифра'(NG,G3), /* 16 */
'факультет'(NG,F), /* 17 */
'номер_спец'(F,G3,NS). /* 18 */

/* определение отношения "номер специальности" с помощью факта и правил*/
'номер_спец'('ФВТ',3,'22.04'). /* 19 */
'номер_спец'('ФВТ',X,'22.03'):- X>=6,X=<7. /* 20 */
'номер_спец'('ФВТ',X,'22.01'):- X>=0,X=<2. /* 21 */
'номер_спец'('ФВТ',X,'22.05'):- X>=4,X=<5. /* 22 */



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












Опубликовал Kest November 03 2009 00:10:34 · 0 Комментариев · 13093 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
ActiveX в Delphi
Autorunner
Swat [Исходник на...
начисление процен...
Язык программиров...
Adapter (пример D...
«Философия» прогр...
Простой текстовый...
RSS Feeds
PHP 5 в подлинник...
Разработка клиент...
Degisy Data Acces...
Род Стивенс. Delp...
Форма в форме
Assistant
Фундаментальные а...
Tank [Исходник на...
AlignEdit
Dbgridpack
C++ Builder 6 СПР...

Топ загрузок
Приложение Клие... 100449
Delphi 7 Enterp... 85798
Converter AMR<-... 20067
GPSS World Stud... 12518
Borland C++Buil... 11572
Borland Delphi ... 8504
Turbo Pascal fo... 7023
Visual Studio 2... 4989
Калькулятор [Ис... 4739
FreeSMS v1.3.1 3536
Случайные статьи
INFORMATION_SCHEMA
Программная выписк...
Учетные записиполь...
11.6. Дополнительн...
Блок try–finally
Модуль Legacy
Ограничения модемов
Соображения по пов...
Раскрутка сайта с ...
Банкетные стулья К...
Программирование д...
Особенности постро...
Введение в СИИ. Кл...
МЕТАФИЗИКА И КОСМ...
Macintosh Мегакомп SE
на 90%
Создание потоков с...
Где мы находимся?
Как выбрать самый ...
Тонкости дизассемб...
О ВРЕМЕНИ, О П...
Кто пишет тесты?
РЕКУРСИЯ
ПРЕДИСЛОВИЕ РЕДАКТ...
Объектно-ориентиро...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?