Лабораторна робота
Тема: Знайомство з середовищем Strawberry Prolog.
Теоретичні відомості:
Пролог - це мова програмування, що використовується для вирішення задач, в яких діють об'єкти і відносини між цими об'єктами. Програма на пролозі складається з речень, які можуть бути фактами, правилами або питаннями.
Можна виділити два рівня характеристики прологівської програми: декларативний і процедурний. Перший з них визначає за допомогою відношень, яким повинен бути результат роботи програми. Другий - як цей результат був отриманий і які з відношень реально оброблялись.
Розглянемо середовище програми Strawberry Prolog.
Команди, що доступні в пункті меню File: |
Створити новий документ.
Відкрити існуючий документ.
Закрити відкритий документ.
Зберегти відкритий документ.
Зберегти відкритий документ з новим ім’ям.
Друкувати документ.
Попередній перегляд документу.
Параметри принтера та документу.
Вийти з середовища Strawberry Prolog.
Основні команди, що доступні в пункті меню Edit:
Undo | Відмінити останню дію.
Вирізати дані з документу.
Копіювати дані.
Вставити дані.
Paste special... | Вставити OLE - дані (OLE технологія).
Select All | Виділити весь текст.
Find... | Знайти.
Основні команди, що доступні в пункті меню Run:
Compile | Відкомпілювати програму.
Run | Запустити програму на виконання.
Next Answer | Знайти іншу відповідь на задане питання.
Основні команди, що доступні в пункті меню Trace:
First Step | Зробити перший крок при пошуку відповіді на питання.
One Step | Зробити один крок при пошуку відповіді на питання.
Trace | Зупинити програму та почати трасування.
Terminate | Припинити виконання програми.
Основні команди, що доступні в пункті меню Options: |
Показує або ховає панель інструментів.
Показує або ховає рядок стану.
Environment | Відкриває діалогове вікно .
Project | Відкриває діалогове вікно Project.
Основні команди, що доступні в пункті меню Tools:
Stack window | Відкриває вікно стеку
Variables window | Відкриває вікно змінних
System List | Відкриває вікно списку всієї бази даних Прологу.
Завдання:
Запустіть приклади програми. Задайте різні питання до цих програм. Визначте відповіді.
1. Нехай у нас є база даних, де занесена інформація про людей person(Х), їжу food(Y), вподобання людей щодо їжі likes(X, Y) та продукти, що є в продажу for_sale(Y).
person(kelly).
person(judy).
food(lemon).
food(hot_dog).
food(pizza).
likes(kelly, hot_dog).
likes(judy, pizza).
for_sale(pizza).
for_sale(lemon).
for_sale(hot_dog).
Сформулюємо наступне правило: Х може купити Y, якщо Х – це людина, Y – це їжа, Х любить їсти Y та продукт Y є в продажу.
can_buy(X, Y) :-
person(X),
food(Y),
likes(X, Y),
for_sale(Y).
Тоді пролог-системі можна задати такі питання:
1. Що може купити kelly?
?- can_buy(kelly, X), write(X).
2. Хто може купити бутерброд з гарячою сосискою?
?-can_buy(X, hot_dog), write(X).
3. Що можуть купити judy i kelly?
?-can_buy(judi, X), can_buy(kelly, X), write(X).
4. Що можуть купити judy або kelly?
?-can_buy(judi, X), write(X); can_buy(kelly, Y), write(Y).
2. Розглянемо наступну програму:
likes(ellen, reading).
likes(john, computers).
likes(john, badminton).
likes(leonard, badminton).
likes(eric, swimming).
likes(eric, reading).
Поставте різні запитання до цієї програми.
3. Розглянемо наступну програму:
car(chrysler, 130000, 3, red, 12000).
car(ford, 90000, 4, gray, 25000).
car(datsun, 8000, 1, red, 30000).
truck(ford, 80000, 6, blue, 8000).
truck(datsun, 50000, 5, orange, 20000).
- Знайдіть автомобіль, вартість якого становить рівно 25000.
- Чи існує в продажі автомобіль, вартість якого менша за 25000?
- Чи існує в продажі автомобіль або вантажівка, вартість яких менша 25000?