Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекц по Visual Prolog.doc
Скачиваний:
4
Добавлен:
02.05.2019
Размер:
937.47 Кб
Скачать

2.11. Приклади використання внутрішньої бази даних

Розглянемо приклади програм, які застосовують динамічну базу даних.

Завдання1. Дано факти з відомостями про книжки бібліотеки. Вивести всю інформацію про книжки і кількість книжок у бібліотеці.

Facts

Single Kol(integer)

Predicates

Kniga(string, string)

do

Goal

Do, kol(K), write(“Кількість книжок”, K).

Clauses

kol(0).

Kniga(“Деникен”, “Колесника богов” ).

Kniga(“Бердник”, “Пути титанов” ).

Kniga(“Ролинг”, “Философский камень” ).

Do:- Kniga(A, N), write(A,N),nl, kol(K),K1=K+1,assertz(kol(K1),fail.

Do.

Кожен раз, одержуючи відомості про книгу, програма включає поточну кількість книжок. Предикат kol має властивість Single і тому в програмі повинен бути рівно один такий факт. Тому при додаванні іншого факту з таким предикатом він заміщується.

Завдання2. Відсортувати факти по кількості речей у пасажирів (у порядку зростання)

Facts-nosort

mesto(integer,integer)

Facts-sort

mesto1(integer, integer)

Predicates

sort

min(integer)

Goal

consult ("F.dat",nosort),sort,save("F.dat",sort).

Clauses

sort:-mesto(_,Kol),min(Kol),sort.

sort.

min(Kol):- mesto(_,Kol1), Kol1 < Kol, min (Kol1).

min(Kol):-mesto(N,Kol),

assertz(mesto1(N,Kol),sort), retract(mesto(N,Kol),nosort).

Файл F.dat містить факти:

mesto(1,5)

mesto(2,1)

mesto(3,4)

mesto(4,6)

Процедура знаходить серед не відсортованих фактів пасажира, у якого кількість речей мінімальна. Цей факт заноситься в область пам’яті, що призначена для відсортованих фактів, і вилучається з області пам’яті, що містить не відсортовані факти.

Далі дії повторюються для фактів, що залишилися. Дії виконуються до тих пір, поки область з ім’ям nosort не стане порожньою, а область з ім’ям sort буде містить відсортовані факти.

На Пролозі просто утворювати експертні системи. Експертна система містить базу знань, механізм виводу та інтерфейс. Механізм логічного виводу розміщується в виконавчій системі Прологу, а базу знань легко утворити засобами динамічної бази даних. Інтерфейс експертної системи легко утворюється візуальними засобами Visual Prolog.

3. Основні поняття visual-prolog

3.1. Загальні відомості

Мова Visual-Prolog використовує англійські букви, цифри і спеціальні символи.

З вказаних символів складаються зарезервовані слова Visual-Prolog та ідентифікатори, що використовує програміст.

До зарезервованих слів Visual-Prolog відносять назви секцій програми, імена стандартних предикатів, ідентифікатори стандартних доменів Visual Prolog, константи, директиви компілятору.

Програміст використовує символи для запису функторів(імен) своїх предикатів, ідентифікаторів змінних, констант, ідентифікаторів іменованих констант, ідентифікаторів методів, об’єктів користувача. Символи кирилиці використовують тільки в рядку, що в лапках.

Ідентифікатори на Пролозі записують за правилами:

  • довжина імені менше 250 символів;

  • ім'я може складатися з англійських букв, цифр, знаків підкреслення;

  • ім'я повинне починатися з букви.

Ім’я змінної починається з великої букви. Виключення – анонімна змінна, її ім'я складається тільки з ‘_’.