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

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

Загрузить программу 2 из раздела 3 первой работы по Prolog. Разобраться в ее структуре и запустить на выполнение. Используя теоретический материал первой работы, познакомиться с синтаксисом, семантикой и назначением стандартных предикатов, используемых в данной программе.

Установив режим трассировки, ознакомиться с последовательностью выполнения программы и действием стандартных предикатов.

Модифицировать программу таким образом, чтобы окно создавалось в середине экрана и в другой цветовой палитре. Для этого по материалы первой работы изучить описание предиката makewindow и воспользоваться им же для вычисления параметров цветовой палитры.

Исключить из программы внутреннюю цель, а описание и определение предиката hello изменить таким образом, чтобы можно было использовать внешнюю цель, задавая в режиме диалога, например, hello("Torn") или hello("").

Отлаженную программу записать на диск с именем "LAB1_2.PRO".

  1. Построение простейшего интерфейса для вывода результатов запросов

Если Вы правильно сформировали и хорошо отладили предикат hello(person) в программе "LAB1_2.PRO", то его можно использовать для вывода в окно любых, определенных в нем термов, что позволяет использовать его в качестве интерфейса для ранее разработанной программы "LAB1_1.PRO". Возможно два варианта совместного использования предикатов из этих двух программ:

- режим переноса в исходный модуль описаний и определений предиката путем копирования из другого файла;

- режим текстовой подстановки в исходный модуль файла, содержащего описание и определение требуемых предикатов.

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

Загрузить программу "LAB1_1.PRO". Войти в режим редактирования и используя режим "копия извне", вызываемый по нажатию клавиши F9, перенести в исходный файл описание и определение предиката hello из файла "LAB1_2.PRO". В исходную внутреннюю цель вставить в качестве первой подцели, например:

goal

hello("Любители пива: \n"), ... , ... , ... , ... .

где последовательность символов \n - это стандартная константа "перевод строки",

Изменив текст программы, отладить ее и записать в файл "LAB1_3.PRO".       

Загрузить программу "LAB1_1.PRO". Войти в режим редактирования и в первой строке программы ввести директиву:

Include "lab1_2.Pro"

В исходную внутреннюю цель в качестве первой подцели вставить предикат, аналогичный выше приведенному или любой другой. Для совместной отладки основного и подгружаемого программных модулей использовать двухоконный режим работы редактора (F5 - вход в дополнительное окно редактирования, F10 - выход из него).

Выполнив необходимую модификацию, отладить программу и записать ее в файл "LAB1_4.PRO".

Исследовать возможность применения пользовательского предиката hello() вместо стандартного предиката write() в разработанных программах.