Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Создание простейших проектов в Visual Prolog




Создание проекта позволяет протестировать пример как автономную исполняемую программу. После запуска проекта на исполнение создается exe-файл, работа которого завершается после первого решения, удовлетворяющего решению задачи. Запуск программы в этом режиме не обеспечивает автоматический вывод значений переменных, поэтому необходимо использовать стандартный предикат вывода write.

Пример.

Заданы отношения-факты:

родитель(“Иван”,”Катя”).

родитель(“Анна”,” Олег ”).

родитель(“Олег”,”Дима”).

родитель(“Игорь”,”Ольга”).

родитель(“Олег”,”Виктор”).

родитель(“Игорь”,”Иван”).

мужчина(“Дима”).

мужчина(“Иван”).

мужчина(“Игорь”).

мужчина(“Олег”).

мужчина(“Виктор”).

женщина(“Катя”).

женщина(“Ольга”).

женщина(“Анна”).

Составить новое отношение-правило дед(X,Y) и определить, кто является дедушкой Кати. Создать проект и протестировать пример как автономную исполняемую программу.

Решение

1. Запустите среду Visual Prolog и создайте новый проект (Project - New Project), активизируется окно Application Expert (эксперт приложения).

2. Определите имя проекта (Primer) и базовый каталог, куда будет сохранен проект (например, D:\VP\Primer)

 

рис.4. Окно Application Expert

 

На вкладке Target установите параметры и нажмите кнопку Create для создания проекта (рис. 5):

рис.5. Установки на вкладке Target окна Application Expert

 

3. Откройте окно Compiler Options (Options - Project - Compiler Options), откройте вкладку Warnings и установите опции компилятора для созданного проекта (рис.6):

рис.6. Установки опций компилятора

Нажмите OK.

4. В окне проекта выделите файл Primer.pro и откройте его для редактирования (двойной щелчок или кнопка Edit)

 

рис.7. Окно проекта

 

Файл с расширением.pro содержит секции PREDICATES, GOAL, CLAUSES. Допишите необходимые определения так, чтобы получилась программа:

DOMAINS

имя=string

PREDICATES

родитель(имя,имя)

женщина(имя)

мужчина(имя)

дед(имя, имя)

CLAUSES

родитель("Иван","Катя").

родитель("Анна","Олег").

родитель("Олег","Дима").

родитель("Игорь","Ольга").

родитель("Олег","Виктор").

родитель("Игорь","Иван").

мужчина("Дима").

мужчина("Иван").

мужчина("Игорь").

мужчина("Олег").

мужчина("Виктор").

женщина("Катя").

женщина("Ольга").

женщина("Анна").

дед(X,Z):-родитель(X,Y), родитель(Y,Z),

мужчина(X).

GOAL

дед(X,"Катя"),write(X).

5. Откомпилируйте исходный код примера и запустите его как автономную исполняемую программу. (Project - Run, или клавиша <F9>, или кнопка <R>). Результат выполнения программы должен отобразиться в окне:

 

рис.8. Окно вывода результата

 

ЗАДАНИЯ ДЛЯ ЛАБОРАТОРНОЙ РАБОТЫ (п.7.1)

Задание 1. Имеется база данных, содержащая следующие факты:

любит(“Aнна,” яблоки).

любит(“Сергей”, бананы).

любит(“Андрей”, яблоки).

любит(“Света”, шоколад).

любит(“Вова”, шоколад).

любит(“Анна”, шоколад).

любит(“Света”, апельсины).

любит(“Вова”, бананы).

Составить программу, определяющую:

a) всех, кто любит бананы;

b) кто любит и шоколад, и яблоки;

c) что любит Вова;

d) что любят и Света, и Вова.

Задание 2. Имеется база данных, содержащая следующие факты:

играет (“Саша”, футбол).

играет (“Катя”, теннис).

играет (“Саша”, теннис).

играет (“Андрей”, футбол).

играет (“Олег”, футбол).

играет (“Ольга”, теннис).

играет (“Катя”, волейбол).

играет (“Олег”, волейбол).

Составить программу, определяющую:

a) каким видом спорта увлекается Андрей;

b) всех, кто играет в волейбол;

c) каким видом спорта увлекаются и Ольга, и Саша;

d) кто увлекается и футболом, и волейболом.

Задание 3. Имеется база данных, содержащая следующие факты:

любит(“Aнна,” яблоки).

любит(“Сергей”, бананы).

любит(“Андрей”, яблоки).

любит(“Света”, шоколад).

любит(“Вова”, шоколад).

любит(“Анна”, шоколад).

любит(“Света”, апельсины).

любит(“Вова”, бананы).

фрукты(яблоки).

фрукты(бананы).

фрукты(апельсины).

конфеты(шоколад).

a) используя имеющиеся факты, составить новое правило люб_фрукты (Х) и определить всех, кто любит фрукты;

b) используя имеющиеся факты, составить новое правило люб_конфеты (Х) и определить всех, кто любит конфеты;

c) используя имеющиеся факты, составить правило люб_вкусное ) и определить всех, кто любит и фрукты, и конфеты.

Задание 4. Имеется база данных, содержащая следующие факты:

играет (“Саша”, футбол).

играет (“Катя”, теннис).

играет (“Саша”, теннис).

играет (“Андрей”, футбол).

играет (“Олег”, футбол).

играет (“Ольга”, теннис).

играет (“Катя”, волейбол).

играет (“Олег”, волейбол).

женщина(“Катя”).

женщина(“Ольга”).

мужчина(“Саша”).

мужчина(“Андрей”).

мужчина(“Олег”).

a) используя имеющиеся факты, составить новое правило волейбол_жен(Х) и определить всех женщин, играющих в волейбол;

b) используя имеющиеся факты, составить новое правило футбол_муж(Х) и определить всех мужчин, играющих в футбол;

c) используя имеющиеся факты, составить правило теннис_пара(Х,Y), позволяющее найти смешанную теннисную пару (мужчина+женщина). Определить все такие пары.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...