Экспертная система "Виды боевых искусств". Prolog
В статье представлена еще одна экспертная система, написанная на языке
логического программирования Turbo Prolog.
Экспертная система называется "Виды боевых искусств" и позволяет
путем нескольких вопросов определить, какой вид боевых искусств
задумывал человек перед программой.
%trace
domains
x=string
database
xpositive(x)
xnegative(x)
otvety(x,x)
predicates
fighting(x)
positive(x)
negative(x)
ask(x,x)
remember(x,x)
write_result(x)
w_r(x)
dalshe
clauses
fighting("Самбо"):- positive("Бросковая техника"),
positive("Борьба в партере"),
positive("Болевые приемы"),
negative("Удушающие приемы").
fighting("Дзю-до"):- positive("Бросковая техника"),
positive("Болевые приемы"),
positive("Борьба в партере"),
positive("Удушающие приемы").
fighting("Бокс"):- negative("Бросковая техника"),
positive("Техника ударов руками"),
negative("Техника ударов ногами").
fighting("Каратэ"):- negative("Бросковая техника"),
positive("Техника ударов руками"),
positive("Техника ударов ногами").
fighting("Айкидо"):- positive("Бросковая техника"),
negative("Борьба в партере"),
positive("Болевые приемы"),
negative("Удушающие приемы").
positive(X):-xpositive(X),!;
xnegative(X),!,fail;
ask(X,"Да"),!;
xpositive(X),!.
negative(X):-xnegative(X),!;
xpositive(X),!,fail;
ask(X,"Нет"),!;
xnegative(X),!.
ask(X,R):-write(X,":"),readln(Reply),remember(X,Reply),R=Reply.
remember(X,"Да"):-assert(xpositive(X)),assert(otvety(X,"Да")),!.
remember(X,"Нет"):-assert(xnegative(X)),assert(otvety(X,"Нет")),!.
remember(X,_):-assert(xpositive(X)),assert(xnegative(X)),assert(otvety(X,"Незнаю!!!")).
write_result(X):-w_r(X).
write_result(_).
w_r(X):-nl,nl,write("Скорее всего это ",X),
nl,write("Потому что:"),!,otvety(X1,X2),nl,write(X1,"->",X2),fail.
dalshe:-nl,write("Работать дальше?"),readln(X),X<>"Да".
goal
clearwindow,retractall(_),!,fighting(X),write_result(X),dalshe.
Стоит обратить внимание на статьи:
Экспертная система : Животные. Turbo Prolog
и
Экспертная система : Выход из опасной пещеры. Turbo Prolog
PHP — это язык программирования, основанный на использовании скриптов. Данный язык широко применяется для создания различных front-end и back-end веб-приложений. Поддерживается по-умолчанию большинством хостеров, являясь одним из лидеров среди языков программирования, предназначенных для создания динамических интерактивных сайтов.
|
Интересные материалы на сайте:
|
|
Автор, разработчик: Шаров Евгений (gcmsite@yandex.ru)
(c) 2000-2020 GCM-Site - системное и веб-программирование
Цитирование материалов сайта возможно только при наличии гиперссылки
|