Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IIS / Лекции / ЛР 2 2 - Prolog задание 1.doc
Скачиваний:
47
Добавлен:
31.03.2015
Размер:
69.12 Кб
Скачать
  1. Загрузка системы Турбо-Пролог, ввод и запуск программ

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

1. ознакомьтесь с опциями главного меню и изучите их назначение;

2. установите режим компиляции в память компьютера;

3. сконфигурируйте, если необходимо, размеры и цветовые палитры всех окон;

4. определите пути доступа к файлам, установив нужные для вас каталоги;

5. выполненные установки запишите в файл конфигурации.

Войдите в режим редактирования системы Турбо-Пролог, воспользовавшись командой "Ред" главного меню, и введите программу 1 из раздела 3 вводной части. Закончив ввод, выйдите из редактора в главное меню системы, нажав клавишу "Esc".

Запустите программу на выполнение, выбрав команду "Вып" главного меню. В данной программе нет секции goal, т.е. в программе отсутствует внутренняя цель, определяющая решение конкретной задачи. Такие программы могут использоваться только в среде системы Турбо-Пролога. Поэтому, после ее запуска на выполнение системой активизируется окно "Диалог" и появляется приглашение на ввод внешней цели (GOAL:)

  1. Работа с Пролог-программами в режиме диалога

Внешние цели - это запросы к программе, формируемые пользователем в окне "Диалог". Введите запрос

GOAL: likes(Who,"пиво").

Объясните: что обозначает данный запрос, к каким элементам языка Турбо-Пролога следует отнести такие объекты запроса, как "пиво". Who и likes.

Активизируйте введенный Вами запрос. Для этого надо после окончания его набора нажать клавишу "Enter". До нажатия "Enter" запрос можно редактировать. В ответ на Ваш запрос в окне "Диалог" должны появиться сообщения.

Who=Петр Who=Иван 2 GOAL:

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

Система запоминает последний из введенных запросов. Для того, чтобы вызвать повторно предыдущий запрос, следует нажать функциональную клавишу F8. Вызовите повторно предыдущую цель и отредактируйте ее так, чтобы она имела вид

GOAL: likes(Who,"пиво","Марья").

Запустите ее на выполнение и объясните полученный результат.

Аналогичные действия проделайте по вводу и запуску запроса вида:

GOAL: likes(Иван, Х)

Объясните полученный результат, внесите изменения в запрос, чтобы он удовлетворял синтаксису языка Турбо-Пролог и повторно запустите запрос на выполнение.

Измените описание предиката так, чтобы было ясно, между какими объектами реального мира отношение likes устанавливается. В частности, для рассматриваемого примера, отношение likes определяется между некоторым лицом (person) и некоторым другим лицом или вещью (thing). Для учета введенного дополнения, измените в секции predicates описание предиката на новое

likes(person,thing)

и запустите программу на выполнение.

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

Так как областью изменения обоих, вновь определяемых, доменов являются символьные данные (точнее данные типа строки символов), то в программу должна быть добавлена секция domains, где должны быть объявлены нестандартные домены и их типы. Для данной программы она может иметь один из двух возможных видов:

domains

person = string thing = string

или

domains

person,thing = string

Введите эти добавления в программу, запустите ее на выполнение и задайте любой, из ранее вводимых запросов. Результат должен соответствовать предыдущему.