
- •Лабораторне заняття № 1
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 2
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 3
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 4
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 5
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 6
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 7
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 8
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 9
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 10
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 11
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 12
- •1. Теоретичні відомості
- •1. Стара графіка.
- •2. Черепахова графіка (Turtle graphics).
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 13
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 14
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 15
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 16
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •43018, М. Луцьк, вул.Львівська, 75
2. Практична частина
database
xpositive(symbol,symbol)
xnegative(symbol,symbol)
predicates
run
animal_is(symbol)
it_is(symbol)
positive(symbol,symbol)
negative(symbol,symbol)
clear_facts
remember(symbol,symbol,symbol)
ask(symbol,symbol)
goal
run.
clauses
run:-animal_is(X),!,write(“\n Your animal may be a”,X),nl,nl,clear_facts
run:-write(“\n t/n able to determinate what”), write(“your animal_is\n\n”),clear_facts.
positive(X,Y):-xpositive(X,Y),!.
positive(X,Y):-not (negative(X,Y)),!,ask(X,Y).
negative(X,Y):-xnegative(X,Y),!.
ask(X,Y):-write(X,” it “,”|n”),readln(Reply),remember(X,Y,Reply).
remember(X,Y,yes):-asserta(xpositive(X,Y)),facts.
remember(X,Y,no):-asserta(xnegative(X,Y)),facts.
clear_facts:-retract(xpositive(_,_)),fail.
clear_facts:-retract(xnegative(_,_)),fail.
clear_facts:-write(“\n\n Please press the space bar to Exit”),readchar(_).
animal_is(chectah):- it_is(manual), it_is(carnivore), positive(has,tawny_color), positive(has,black_spots),!.
animal_is(tiger):- it_is(manual), it_is(carnivore), positive(has,tawny_color), positive(has,black_stripes),!.
animal_is(girraffe):- it_is(ungulate), positive(has,long_nick), positive(has,long_legs), positive(has,dark_spots),!.
animal_is(zebra):- it_is(ungulate), positive(has,black_stripes),!.
animal_is(astrich):-it_is(bird), not (positive(does,fly)),positive(has,long_neck), positive(has,long_legs),!.
animal_is(penguin):-it_is(bird), not (positive(does,fly)), positive(has,black_and_white_color),!.
animal_is(albatros):-it_is(bird),positive(does,fly), positive(does,fly_well),!.
it_is(manual):-positive(has,hair), positive(does,give_milk),!.
it_is(carnivore):-it_is(manual), positive(does,eat_meat), positive(has,pointed_teeth), positive(has,claus),!.
it_is(ungulate):-it_is(manual), positive(has,hooves), positive(does,chew_end),!.
It_is(bird):-not (positive(has,hair)), not (positive(does,give_milk)), positive(has,feathers), positive(does,lay_eggs),!.
2.1. Програма роботи та завдання.
2.1.1. Створити в середовищі Turbo Prolog програму з прикладу 1 та дослідити її.
2.1.2. Задати різні варіанти цілей та проаналізувати отримані результати.
2.1.3. Зафіксувати результати. Створити свою експертну систему на основі даної.
2.1.4. Зафіксувати у звіті вихідні коди створених програм та логіку їх роботи.
2.1.5. Відповісти письмово на контрольні питання.
Контрольні питання:
1) Позначення анонімної змінної?
Суть використання анонімних змінних?
Які вбудовані предикати зустрічають найчастіше?
Лабораторне заняття № 4
Тема: Дослідження простих та складних даних
Мета роботи. Дослідити основні об’єкти даних і функтори із застосуванням складних об’єктів; у звіті зафіксувати логіку роботи досліджуваних програм; проаналізувати отримані результати.
1. Теоретичні відомості
Простими даними виступають змінні або ж константи. Константа може бути символьною (char), числовою (integer, real) або атомарною (symbol, string).
Змінна позначається ідентифікатором. Ідентифікатор починається з великої букви у діапазоні від А до Z, або ж символом підкреслювання (_). Як вже зазначалося, єдиний символ підкреслювання позначає анонімну змінну. У Пролозі змінна може зв’язуватись з будь-яким аргументом або об’єктом даних. Зазначимо, що змінні Прологу є локальними, а не глобальними. Іншими словами, якщо два пункти мають змінну Х, тоді ці Х є різними змінними.
Складні об’єкти даних дозволяють вам взяти декілька частин інформації в єдиний пункт. Наприклад, дата 2 квітня 1994 складається з 3 частин. Але іноді їх корисно з’єднати воєдино:
date("April",2,1989)
Так виглядає факт Прологу, у даному випадку - просто об’єкт даних. Він починається з імені або ж функтора (у нашому прикладі date). Функтор не символізує якесь обчислення, яке повинно бути виконаним. Це просто ім’я об’єкту. Аргументи складного об’єкту самі можуть бути складними.
Складний об’єкт може уніфікуватись або з простою змінною, наприклад, data(''April'',2,1981) зрівнюється з X і зв’язує X з date(“April”,2,1981), або ж зі складним об'єктом, який збігається з ним структурно: так, data(''April'',2,1981) порівнюється з date(Mo,Da,Yr).
Використання знаку дорівнює (=) для уніфікації складних об’єктів.
Пролог проводить уніфікацію у двох місцях. По перше, уніфікація проходить, коли є виклик співставлення голови фрази. Інший спосіб виконання уніфікації - це використання знаку (=). У цьому випадку Пролог буде ототожнювати об’єкти, які знаходяться по обидві сторони знаку. Цей підхід є корисним для знаходження значень аргументів складного об’єкту. Наприклад, наступна програма виконує такі дії. Якщо дві особи мають одне й те саме прізвище, тоді другій особі приписується адреса першої.