Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
9
Добавлен:
05.06.2015
Размер:
83.97 Кб
Скачать

Кіровоградський національний технічний університет

Механіко-технологічний факультет

Кафедра програмного забезпечення

Дисципліна: «Логічне програмування»

Лабораторна робота №9

Тема: “Творча робота з курсу „Логічне програмування”.

Експертна система пошуку тварин

Виконала:ст. гр.КІ-07-2

Шведченко М.

Перевірив:викладач

Якименко Н. М.

м. Кіровоград 2010

Лабораторна робота № 9

Тема: “Творча робота з курсу „Логічне програмування”.

Мета: Узагальнити знання, отримані під час вивчення курсу та творчо їх використати.

Завдання:

Написати оригінальну програму, яка буде уособлювати в собі всі знання та вміння, набуті вами під час вивчення курсу „Логічне програмування” а також вашу фантазію та творчу думку. Бажано використання меню та графіки.

database

yes(string)

no(string)

maybe(string)

predicates

repeat

run

animal(string)

positive(string)

negative(string)

xpositive(string)

xnegative(string)

ask(string,char)

remember(string,char)

delete_all

clauses

repeat.

repeat:-repeat.

%-----------------------------------------------------------------------------

% описуємо тварин

animal("пiнгвiн"):-positive("плаває"),positive("має рiзнокольорове забарвлення"),

negative("приручено людиною"),

negative("вмiє лiтати"),positive("вiдкладає яйця"),

positive("має пiр`я").

animal("гусак"):-positive("плаває"),positive("має рiзнокольорове забарвлення"),

positive("приручено людиною"),

positive("вмiє лiтати"),positive("вiдкладає яйця"),

positive("має пiр`я").

animal("дика качка"):-positive("плаває"),positive("має рiзнокольорове забарвлення"),

negative("приручено людиною"),

positive("вмiє лiтати"),positive("вiдкладає яйця"),

positive("має пiр`я").

animal("страус"):-negative("плаває"),positive("має рiзнокольорове забарвлення"),

negative("приручено людиною"),

negative("вмiє лiтати"),positive("вiдкладає яйця"),

positive("має пiр`я").

animal("соловей"):-negative("плаває"),negative("має рiзнокольорове забарвлення"),

negative("приручено людиною"),

positive("вмiє лiтати"),positive("вiдкладає яйця"),

positive("має пiр`я").

animal("папуга"):-negative("плаває"),

positive("має рiзнокольорове забарвлення"),

positive("приручено людиною"),

positive("вмiє лiтати"),positive("вiдкладає яйця"),

positive("має пiр`я").

animal("заєць"):-positive("плаває"),positive("має рiзнокольорове забарвлення"),

negative("вмiє лiтати"),

positive("має кiгтi"),

negative("приручено людиною"),

positive("живородяще"),

positive("травоїдне"),

negative("їсть iнших тварин").

animal("крiт"):-negative("вмiє лiтати"),negative("має рiзнокольорове забарвлення"),

positive("має кiгтi"),

negative("приручено людиною"),

negative("плаває"),positive("слiпе вiд народження"),

positive("живородяще"),

positive("травоїдне"),

negative("їсть iнших тварин").

animal("зебра"):-negative("вмiє лiтати"),positive("має рiзнокольорове забарвлення"),

negative("має кiгтi"),

positive("має роги"),

negative("приручено людиною"),

positive("плаває"), positive("має копита"),

positive("живородяще"),

positive("травоїдне"),

negative("їсть iнших тварин").

animal("корова"):-negative("вмiє лiтати"),positive("має рiзнокольорове забарвлення"),

negative("має кiгтi"),

positive("має роги"),

positive("приручено людиною"), positive("має копита"),

positive("плаває"), positive("живородяще"),

positive("травоїдне"),

negative("їсть iнших тварин").

animal("бобер"):-negative("вмiє лiтати"),negative("має рiзнокольорове забарвлення"),

positive("має кiгтi"),

negative("приручено людиною"),

positive("плаває"), positive("живородяще"),

positive("травоїдне"),

negative("їсть iнших тварин").

animal("вовк"):-negative("вмiє лiтати"),negative("має рiзнокольорове забарвлення"),

positive("має кiгтi"),

negative("приручено людиною"),

positive("плаває"),positive("живородяще"),

negative("травоїдне"),

positive("їсть iнших тварин").

animal("тигр"):-negative("вмiє лiтати"),positive("має рiзнокольорове забарвлення"),

positive("має кiгтi"),

negative("приручено людиною"),

positive("плаває"),positive("живородяще"),

negative("травоїдне"),

positive("їсть iнших тварин").

animal("слон"):-negative("вмiє лiтати"),negative("має рiзнокольорове забарвлення"),

positive("має хобот"),

positive("приручено людиною"),

positive("плаває"),positive("живородяще"),

positive("травоїдне"),

negative("їсть iнших тварин").

animal("Вибачте! Такого звiра не знайдено ...").

%-----------------------------------------------------------------------------

% робота з динамiчною базою даних

positive(X):-xpositive(X),!; xnegative(X),!,fail; ask(X,'y').

negative(X):-xnegative(X),!; xpositive(X),!,fail; ask(X,'n').

ask(X,R):-write(X," ? : "),readchar(Reply),write(Reply,"\n"),

remember(X,Reply),R=Reply.

% перевiрка наявностi фактiв в динамiчнiй базi даних

xpositive(X):-yes(X);maybe(X).

xnegative(X):-no(X);maybe(X).

% запам`ятовуємо факт в динамiчнiй базi даних

remember(X,'y'):-asserta(yes(X)).

remember(X,'n'):-assertz(no(X)).

remember(X,'q'):-asserta(maybe(X)).

% очищаємо пам`ять вiд фактiв в динамiчнiй базi даних

delete_all:-retract(yes(_)),delete_all.

delete_all:-retract(no(_)),delete_all.

delete_all:-retract(maybe(_)),delete_all.

delete_all.

%-----------------------------------------------------------------------------

run:-delete_all,

repeat,

write("Вiдповiдати на питання (y-так, n-нi, q-не знаю).\n"),

animal(X),

write("Це тварина : ",X,"\n"),

write("Завершити роботу програми (y/n): "),readchar(Z),

write(Z),nl,

Z='y'.

goal

makewindow(1,10,12," Експертна система пошуку тварин ",0,0,25,80),

nl,

write("--------------------------------------------"),nl,

run.

Соседние файлы в папке ЛП