Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Visual Prolog] Экспертная система


Автор: diana_girl 30.1.2009, 11:01
Модернизировать код программы из Visual Prolog 5.2 в Visual Prolog 7.1

Код

/*5.МОЯ ФУТБОЛЬНАЯ КОМАНДА*/

  domains 
s= symbol 

database
  xpositive(s, s)
  xnegative(s, s)

predicates
do_expert_job
do_consulting
ask(s,s)
dog_is(s)    
it_is(s)

positive(s,s)
negative(s,s)
remember(s,s,s) 
clear_facts
goal
   do_expert_job. 
   clauses
do_expert_job :-

nl,write("* * * * * * * * * * * * * * * * * * * "),
nl,write(" ЭС, РАСПОЗНАЮЩАЯ ВАШУ ФУТБОЛЬНУЮ КОМАНДУ       "),
nl,write("                                      "),

nl,write("Пожалуйста, отвечайте на вопросы    "),

nl,write("'да' или 'нет'.    "),
nl ,write("* * * * * * * * * * * * * * * * * * * "),
nl,nl,
do_consulting,
write("Нажимайте кл. Esc."),nl,
readchar(_),

exit.
do_consulting :-
dog_is(X),!,nl,
write("ВАША ФУТБОЛЬНАЯ КОМАНДА ",X,"."),nl,
    clear_facts. 
do_consulting :-
  nl,write("ВЫ НЕ УВЛЕКАЕТЕСЬ ФУТБОЛОМ ! "),  clear_facts.
ask(X,Y) :-
write(" Вопрос :- ",X," it ",Y," ?"),
readln(Reply),
remember(X,Y,Reply).
positive(X,Y) :-
    xpositive(X,Y),!.
positive(X,Y) :-
not(negative(X,Y)),!,ask(X,Y).
negative(X,Y) :-
xnegative(X,Y),!.

remember(X,Y,да) :-
    asserta(xpositive(X,Y)).
     remember(X,Y,нет) :-
asserta(xnegative(X,Y)),!,fail.

clear_facts :-
retract(xpositive(_,_)),
    fail. 
    clear_facts :-
retract(xnegative(_,_)),
fail.
 dog_is("СПАРТАК") :-it_is("РУССКАЯ"),
positive(has,"преданные болельщики"), 
positive(has,"давние традиции"),
positive(has,"символ команды Титов"),!.
  dog_is("ЦСКА") :-
it_is("РУССКАЯ"),
positive(has,"преданные болельщики"),
positive(has,"особенная команда"),
positive(has,"символ команды Акинфеев"),!.
  dog_is("ЗЕНИТ") :-
it_is("РУССКАЯ"),
positive(has,"преданные болельщики"),
positive(has,"успешный клуб"),
positive(has,"символ команды Тимощук"),!.
  dog_is("МАНЧЕСТЕР ЮНАЙДЕТ") :-it_is("АНГЛИЙСКАЯ"),
positive(has,"лучшие болельщики"),
positive(has,"давние традиции"),
positive(has,"символ команды Криштиану Роналду"),!.
  dog_is("ЧЕЛСИ") :-it_is("АНГЛИЙСКАЯ"),
positive(has,"лучшие болельщики"),
positive(has,"особенная команда"),
positive(has,"символ команды Джон Терри"),!.
  dog_is("ЛИВЕРПУЛЬ") :-
  it_is("АНГЛИЙСКАЯ"),
positive(has,"лучшие болельщики"),
positive(has,"успешный клуб"),
positive(has,"символ команды Джеррард"),!.
  dog_is("ИНТЕР") :-
it_is("ИТАЛЬЯНСКАЯ"),
positive(has,"лучший фан-клуб"),
positive(has,"давние традиции"),
positive(has,"символ команды Ибрагимович"),!.
dog_is("РОМА") :-
it_is("ИТАЛЬЯНСКАЯ"),
positive(has,"лучший фан-клуб"),
positive(has,"особенная команда"),
positive(has,"символ команды Тотти"),!.
dog_is("МИЛАН") :-
it_is("ИТАЛЬЯНСКАЯ"),
positive(has,"лучший фан-клуб"),
positive(has,"успешный клуб"),
positive(has,"символ команды Зеедорф"),!.
dog_is("СЕВИЛЬЯ") :-
it_is("ИСПАНСКАЯ"),
positive(has,"классные болельщики"),
positive(has,"давние традиции"),
positive(has,"символ команды Луис Фабиано"),!.
dog_is("РЕАЛ") :-
it_is("ИСПАНСКАЯ"),
positive(has,"классные болельщики"),
positive(has,"особенная команда"),
positive(has,"символ команды Рауль"),!.
  dog_is("БАРСЕЛОНА") :-
it_is("ИСПАНСКАЯ"),
positive(has,"классные болельщики"),
positive(has,"успешный клуб"),
positive(has,"символ команды Пуйоль"),!.
  dog_is("МАРСЕЛЬ") :-
it_is("ФРАНЦУЗКАЯ"),
positive(has,"веселые болельщики"),
positive(has,"давние традиции"),
positive(has,"символ команды Бартез"),!.
  dog_is("БОРДО") :-
it_is("ФРАНЦУЗКАЯ"),
positive(has,"веселые болельщики"),
positive(has,"особенная команда"),
positive(has,"символ команды Зидан"),!.
  dog_is("ЛИОН") :-
it_is("ФРАНЦУЗКАЯ"),
positive(has,"веселые болельщики"),
positive(has,"успешный клуб"),
positive(has,"символ команды Малуда"),!.
  it_is("АНГЛИЙСКАЯ") :-
positive(has,"АНГЛИЙСКАЯ"),!.
  it_is("ИТАЛЬЯНСКАЯ") :-
positive(has,"ИТАЛЬЯНСКАЯ"),!.
 it_is("ИСПАНСКАЯ") :-
positive(has,"ИСПАНСКАЯ"),!.
it_is("РУССКАЯ") :-
positive(has,"РУССКАЯ"),!.
 it_is("ФРАНЦУЗКАЯ") :-
positive(has,"ФРАНЦУЗКАЯ"),!. 


Visual Prolog 7.1 качаем сдесь http://download.softportal.com/software-2402-visual-prolog.html
Серийник на Visual Prolog 7.1 если надо
Код

Begin License
[{Uwe Schwalm}]
[{}]
[{3EOYM7-3EOYWD-T6X13G}]
[{Visual Prolog 7.1 Commercial Edition}]
[{1 user license 2007.11.15}]
[{58Z161Z0Z0Z05577652053636877616C6DZAZA33454F594D372DBDZE215E}]
[{21D2828AZD2C31661C516025CD9C3AZ97B8140C9BDB1BD9D81DCB8C480ZC}]
[{BDB5B595C98DA5F5962C4226ZD9D346FDC288059678E4D106CD28C29E3A6}]
[{28Z8193060B88C11E365ZDZ0}]
End License

Visual Prolog 5.2 качаем сдесь http://ifolder.ru/10288655

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)