ЛАБОРАТОРНАЯ РАБОТА № 1
«Родственные отношения»
Цель работы
Изучение среды программирование на Прологе. Составление программ для обработки символьной нечисловой информации. Освоение конструкций языка логического программирования Пролог. Приобретение навыков записи фактов и правил на примере области кровно-родственных отношений.
Подготовка к работе:
Изучить структуру пролог-программы, правила записи секций, фактов и правил. Освежить в памяти названия субъектов кровно-родственных отношений.
Порядок выполнения работы:
1. Изучение среды разработки пролог-программ
Загрузить компилятор языка логического программирования PROLOG.
Изучить состав окон, меню и назначение функциональных клавиш. Используйте службу помощи Help (F1).
Система Турбо Пролог включает главное меню, четыре окна и строку помощи. Выбирать элементы меню можно тремя способами:
-
перемещением выделенной полосы клавишами управления курсором
-
нажатием на клавиатуре выделенной буквы ("F" для "FILE")
-
"горячей" клавишей: клавиша ALT и первая буква элемента главного меню (ALT-E переход в окно редактирования, ALT-R запуск программы на выполнение).
Для выхода из меню или возврата в предыдущее положение служит ESC. Вход в главное меню – F10. Выход из системы – ALT-X.
Функции шести элементов главного меню даны в справочном материале.
Рассмотрим назначение системных окон.
Окно редактирования (EDITOR) служит для набора и корректировки пролог-программы. Для копирования, перемещения используются следующие комбинации клавиш:
начало выделения блока CTRL-K-B
конец выделения блока CTRL-K-K
копирование CTRL-K-C
перемещение CTRL-K-V
снятие выделения CTRL-K-H
Окно трассировки (TRACE) позволяет отлаживать программу в пошаговом режиме. Режим трассировки включается либо директивами TRACE или SHORTTRACE, либо из меню OPTIONS-COMPILER DIRECTIVES.
Окно сообщений (MESSAGE) служит для вывода сообщений.
Диалоговое окно (DIALOG) является средством среды разработки, с помощью которого передается в систему Турбо Пролога запросы. Когда Вы добьетесь, что введение нужной вам цели приводит к ожидаемой реакции вашей программы, можно включить эту цель в свою программу.
Для запуска программы после набора или корректировки программы, нажимаем горячую клавишу ALT-R. При отсутствии ошибок, происходит переход в окно диалога. При этом в нем выводится приглашение: GOAL (цель). Для удобства последнюю цель можно вызвать нажатием клавиши F8.
2. Составление пролог-программ
В качестве примера опишем генеалогическое дерево некоей семьи
Между членами семьи существует отношение "А родитель В". Кроме того, каждый объект обладает свойством "мужчина", "женщина".
Опишем эти отношения в секции описания предикатов
predicates
parent(symbol, symbol)
man(symbol)
woman(symbol)
В разделе clauses пишется тело программы.
Чтобы описать это дерево родственных отношений, необходимо описать каждую стрелку - отношение между двумя объектами:
Родитель (пам, боб).
Родитель (том, боб).
Родитель (боб, пат).
Родитель (пам, энн).
Родитель (том, лиз).
Родитель (пат, джим).
Пролог-программа состоит из предложений, заканчивающихся точкой (.).
Каждое предложение объявляет об одном факте наличия отношения родитель.
Вначале опишите отношение родитель, затем свойства мужчина и женщина. Порядок описания отношений безразличен. Следите только за тем, чтобы отношения не перемешивались – программа укажет на ошибку.
clauses
parent(pam, bob).
parent(tom, bob).
. . .
parent(pat, jim).
man(bob).
. . .
woman(pam).
. . .
Чтобы проверить правильность написания программы, запустите её на выполнение (Alt + R). При наличии ошибок выводятся соответствующие диагностические сообщения. Типовые ошибки приведены в справочном материале.