- •Лабораторная работа № 4 Программирование интеллектуальных систем на языке Пролог Работа с простейшими программами в системе Турбо-Пролог
- •Введение
- •Include "dos_file_name"
- •Загрузка системы Турбо-Пролог, ввод и запуск программ
- •Работа с Пролог-программами в режиме диалога
- •Трассировка программ в среде системы Турбо-Пролога
- •Работа с программами, содержащими внутреннюю цель
- •Простейшая программа ввода-вывода данных
- •Построение простейшего интерфейса для вывода результатов запросов
- •Include "lab1_2.Pro"
- •Порядок выполнения лабораторной работы
Простейшая программа ввода-вывода данных
Рассмотрим еще один пример программы с внутренним описанием цели, которая демонстрирует простейшие возможности Турбо-Пролога по организации интерфейса с пользователем на основе использования стандартных предикатов Турбо-Пролога.
Загрузить программу 2 из раздела 3 первой работы по Prolog. Разобраться в ее структуре и запустить на выполнение. Используя теоретический материал первой работы, познакомиться с синтаксисом, семантикой и назначением стандартных предикатов, используемых в данной программе.
Установив режим трассировки, ознакомиться с последовательностью выполнения программы и действием стандартных предикатов.
Модифицировать программу таким образом, чтобы окно создавалось в середине экрана и в другой цветовой палитре. Для этого по материалы первой работы изучить описание предиката makewindow и воспользоваться им же для вычисления параметров цветовой палитры.
Исключить из программы внутреннюю цель, а описание и определение предиката hello изменить таким образом, чтобы можно было использовать внешнюю цель, задавая в режиме диалога, например, hello("Torn") или hello("").
Отлаженную программу записать на диск с именем "LAB1_2.PRO".
Построение простейшего интерфейса для вывода результатов запросов
Если Вы правильно сформировали и хорошо отладили предикат 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() в разработанных программах.