![]() |
|
|
![]()
|
|
| lolli |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 6.10.2011 Репутация: нет Всего: нет |
Всем Привет! Есть экспертная система продажи телефонов, некоректно работает выбор телефона подешевле после того как пользователь ответит на вопросы. Помогите пожалуста исправить ошибку. Заранее благодарна!
Код database yes(string) no(string) maybe(string) predicates repeat run make_selection(string, integer, integer) continue_selection(integer, string, integer) tel(string,integer) is(string) positive(string) negative(string) xpositive(string) xnegative(string) ask(string,char) remember(string,char) delete_all clauses repeat. repeat:-repeat. %----------------------------------------------------------------------------- % описываем технические характеристики сотового телефона tel("Samsung E1070", 890):- positive("цветной дисплей"),positive("емкий аккумулятор"), negative("имеет камеру"), negative("имеет FM-радио"), negative("имеет Mp3-плеер"), is("только для связи"). tel("Nokia 1202", 1000):- positive("цветной дисплей"),positive("емкий аккумулятор"), negative("имеет камеру"), negative("имеет FM-радио"), negative("имеет Mp3-плеер"), is("только для связи"). tel("Nokia 1208", 1190):-positive("цветной дисплей"),positive("емкий аккумулятор"), negative("имеет камеру"), negative("имеет FM-радио"), negative("имеет Mp3-плеер"), is("только для связи"). tel("Nokia 2630", 2490):-positive("цветной дисплей"),positive("емкий аккумулятор"), negative ("имеет камеру"), positive ("имеет FM-радио"), negative("имеет Mp3-плеер"), is("только для связи"), is("развлечения и музыка"). tel("LG KP105", 1490):- positive("цветной дисплей"),positive("емкий аккумулятор"), negative ("имеет камеру"), positive ("имеет FM-радио"), negative("имеет Mp3-плеер"), is("только для связи"). tel("LG GB110", 2550):- positive("цветной дисплей"),positive("емкий аккумулятор"), negative ("имеет камеру"), positive ("имеет FM-радио"), negative ("имеет Mp3-плеер"), is("только для связи"), is("развлечения и музыка"). tel("Nokia E52", 12990):- positive("цветной дисплей"), positive ("емкий аккумулятор"), positive ("имеет камеру"), positive ("имеет FM-радио"), positive ("имеет флэш-карту"), negative("имеет навигацию"), negative("имеет Mp3-плеер"), is("мобильный офис"). tel("Nokia E66", 11890):- positive("цветной дисплей"), positive ("емкий аккумулятор"), positive ("имеет камеру"), positive ("имеет FM-радио"), positive ("имеет флэш-карту"), negative ("имеет навигацию"), negative("имеет Mp3-плеер"), is("мобильный офис"), is("помощник в путешествиях"). tel("Nokia E63", 13500):- positive("цветной дисплей"), positive ("емкий аккумулятор"), positive ("имеет камеру"), positive ("имеет FM-радио"), positive ("имеет флэш-карту"), negative ("имеет навигацию"), negative("имеет Mp3-плеер"), is("мобильный офис"), is("помощник в путешествиях"). tel("Nokia 5310", 7990):- positive("цветной дисплей"), positive ("емкий аккумулятор"), positive ("имеет камеру"), positive ("имеет FM-радио"), positive ("имеет флэш-карту"), positive ("имеет Mp3-плеер"), negative("сенсорный дисплей"), positive ("имеет дополнительные клавиши управления Mp3-плеером"), is("развлечения и музыка"). tel("Nokia 5530", 7780):- positive("цветной дисплей"), positive ("емкий аккумулятор"), positive ("имеет камеру"), positive ("имеет FM-радио"), positive ("имеет флэш-карту"), positive ("имеет Mp3-плеер"), negative ("сенсорный дисплей"), positive ("имеет дополнительные клавиши управления Mp3-плеером"), is("развлечения и музыка"). tel("Nokia 5800", 8890):- positive("цветной дисплей"), positive ("емкий аккумулятор"), positive ("имеет камеру"), positive ("имеет FM-радио"), positive ("имеет флэш-карту"), positive ("имеет Mp3-плеер"), negative ("сенсорный дисплей"), positive ("имеет дополнительные клавиши управления Mp3-плеером"), is("развлечения и музыка"), is("мобильный офис"),is ("помощник в путешествиях"). tel("SonyEricsson W595", 8450):- positive("цветной дисплей"), negative ("емкий аккумулятор"), positive ("имеет камеру"), positive ("имеет FM-радио"), positive ("имеет флэш-карту"), positive ("имеет Mp3-плеер"), negative("сенсорный дисплей"), negative ("имеет дополнительные клавиши управления Mp3-плеером"), is("развлечения и музыка"). tel("SonyEricsson W395", 7890):- positive("цветной дисплей"), negative ("емкий аккумулятор"), positive ("имеет камеру"), positive ("имеет FM-радио"), positive ("имеет флэш-карту"), positive ("имеет Mp3-плеер"), negative("сенсорный дисплей"), negative ("имеет дополнительные клавиши управления Mp3-плеером"), is("развлечения и музыка"). tel("Nokia N86", 24790):- positive("цветной дисплей"), positive ("емкий аккумулятор"), positive ("имеет камеру"), positive ("имеет FM-радио"), positive ("имеет флэш-карту"), positive ("имеет навигацию"), positive ("имеет Mp3-плеер"), negative ("имеет Wi-Fi"), positive ("имеет дополнительную клавиатуру"), is("помощник в путешествиях"), is("мобильный офис"). tel("Nokia N97", 27990):- positive("цветной дисплей"), positive ("емкий аккумулятор"), positive ("имеет камеру"), positive ("имеет FM-радио"), positive ("имеет флэш-карту"), positive ("имеет навигацию"), positive ("имеет Mp3-плеер"), negative ("имеет Wi-Fi"), positive ("имеет дополнительную клавиатуру"), is("помощник в путешествиях"), is("мобильный офис"), is("развлечения и музыка"). tel("Такой телефон еще не произведен!!!!", 0). %----------------------------------------------------------------------------- is("только для связи"):-positive("звонить и отправлять смс"),!. is("мобильный офис"):- positive("смартфон"),!; negative("слушать музыку"), positive("звонить и отправлять смс"). is("развлечения и музыка"):- positive("слушать музыку"),!; positive("звонить и отправлять смс"), negative("смартфон"). is("помощник в путешествиях"):-positive("имеет GPS-навигацию"). %----------------------------------------------------------------------------- % работа с динамической базой данных 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. % проверка присутствия фактов в динамической базе данных xpositive(X):-yes(X);maybe(X). xnegative(X):-no(X);maybe(X). % запоминаем факт в динамической базе данных remember(X,'y'):-asserta(yes(X)). remember(X,'n'):-assertz(no(X)). remember(X,'q'):-asserta(maybe(X)). % очищаем память от фактов динамической базы данных 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("На вопросы отвечать (y-да, n-нет, q-не знаю).\n"), make_selection(X, A, CHOOSE), continue_selection(CHOOSE, X, A), write("Завершить работу программы (y/n): "),readchar(Z), write(Z),nl, Z='y', !. make_selection(X, A, CHOOSE) :- tel(X,A), write("Ваш выбор: ",X," цена: ",A,"\n"), write("Устраивает ли вас цена? \n1-да, данная модель меня устраивает\n2-нет, покажите модель по дешевле\n3-нет, покажите модель по дороже"), readchar(CHOOSE). continue_selection('1', X, A) :- !, write("Ваш выбор: ",X," цена: ",A,"\n"), !. continue_selection('2', X, A) :- !, tel(X, Z), Z < A, write("-->>", X, " - ", A). goal makewindow(1,10,12," Экспертная система : СОТОВЫЕ ТЕЛЕФОНЫ ",0,0,25,80), write("--------------------------------------------"),nl, run. |
|||
|
||||
![]()
|
| Добро пожаловать в раздел "Другие языки" форума Vingrad! | |
|
|
Раздел посвящён различным языкам программирования, для которых (в силу невысокой популярности) нет отдельного раздела (GPSS, Lua, MATLAB, Ada, Forth, Smalltalk, Tcl, REXX, AWK и др.)
Приятного времяпрепровождения! С уважением, Void, kemiisto . |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Другие языки | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |