Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 01.07.2013
Сообщений: 4

База знаний болезней Prolog

12.03.2015, 11:41. Показов 2035. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста!
Честно нашел программу в интернете. В ней есть какая ошибка или нехватка чего то. Исходя из моих скудных знаний пролога, по логике тут все построено правильно.
Задание:
Для предметной области Медицина, сформировать базу знаний, соответствующую следующим требованиям:
Переменные:
1) СГ – состояние горла
2) Н – насморк
3) К – кашель
4) СМ – состояние миндалин
5) Г – голос
6) Т – температура
7) ГБ – головная боль
8) НС – наличие сыпи
9) ОИ – общая интоксикация
10) ДЛ – давление
11) Д – диагноз
Правила:
1) ЕСЛИ СГ = красное ТО К = сухой
2) ЕСЛИ К = сухой И Т = невысокая И Н = да ТО Д = ОРВ
3) ЕСЛИ ОИ = тяжелая И СМ = воспаленные И ГБ = да ТО Д = ангина
4) ЕСЛИ ДЛ = высокое И СГ = красное И СМ = фиброзная пленка И ГБ = да ТО Д = дифтерия
5) ЕСЛИ Т = высокая И Н = да И К = сухой И НС = да ТО Д = краснуха
6) ЕСЛИ ОИ = тяжелая Г = охрипший И НС = да ТО Д = корь
7) ЕСЛИ Т = высокая ТО ОИ = тяжелая
8) ЕСЛИ ОИ = тяжелая И НС = да ТО Д = оспа
9) ЕСЛИ К = влажный И ОИ = тяжелая ТО Д = бронхит
10) ЕСЛИ К = сухой ТО Г = охрипший
11) ЕСЛИ ОИ = тяжелая ТО ДЛ = высокое
Вот код:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
DATABASE
xpositive(symbol, symbol)
xnegative(symbol, symbol)
PREDICATES
resultat
vopros(symbol, symbol)
positive(symbol, symbol)
negative(symbol, symbol)
remember(symbol, symbol, symbol)
nondeterm diagnosis_is(symbol)
clear_facts
GOAL
resultat.
CLAUSES
resultat:-diagnosis_is(X),!,nl,write("Vash diagnoz - ",X," "),nl, clear_facts.
resultat:-nl, write("Vash diagnoz -  NO!"),clear_facts.
vopros(X, Y):-write("Vopros – ",X, " ",Y, "? (yes/no)"),readln(R),
remember(X,Y,R).
 
positive(X,Y):-xpositive(X,Y),!,not(negative(X,Y)),!,vopros(X,Y).
negative(X,Y):-xnegative(X,Y),!.
remember(X,Y,"yes"):-assertz(xpositive(X,Y)).
remember(X,Y,"no"):-assertz(xnegative(X,Y)),fail.
clear_facts:-retract(xpositive(_,_)),fail.
clear_facts:-retract(xnegative(_,_)),fail.
diagnosis_is("K=suhoy"):-positive("Sostoyanie gorla =Krasnoe",_).
diagnosis_is("OPB"):- positive("K=syhoy",_),
            positive("T=nevisokaya",_),
            positive("Hasmopk =yes",_).
diagnosis_is("ANGINA"):- positive("OI =Tyajoloe (HEAVY)",_),
            positive("CM =vospalenie",_),
            positive("Golovnaya Bol =yes",_).
diagnosis_is("DIFTIRIYA"):- positive("Davlenoe =visokoe",_),
            positive("Sostoyanie gorla =Krasnoe",_),
            positive("CM =fibpoznaya plenka",_),
            positive("Golovnaya Bol =yes",_).
diagnosis_is("KPASHUHA"):- positive("T=visokaya",_),
            positive("Hasmork=yes",_),
            positive("K=suhoy",_),
            positive("Nalichie sipi=yes",_).
diagnosis_is("KOPb"):- positive("OI =Tyajoloe (HEAVY)",_),
            positive("Golos =ohripshiy",_),
            positive("Nalichie sipi=yes",_).
diagnosis_is("OI =Tyajoloe (HEAVY)"):- positive("T=visokaya",_).
diagnosis_is("OSPA"):- positive("OI =Tyajoloe (HEAVY)",_),
            positive("Nalichie sipi=yes",_).
diagnosis_is("BRONHIT"):- positive("K=vlazshniy",_),
            positive("OI =Tyajoloe (HEAVY)",_).
diagnosis_is("Golos=ohripshiy"):- positive("K=suhoy",_).
diagnosis_is("Davlenie =visokoe"):- positive("OI =Tyajoloe (HEAVY)",_).
При компиляции не задает вопросов просто выводит "Vash diagnoz - NO!". Помогите пожалуйста очень срочно нужно.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.03.2015, 11:41
Ответы с готовыми решениями:

База знаний на Prolog
Помогите пожалуйста! Есть задание: Для предметной области Медицина, сформировать базу знаний, соответствующую следующим требованиям: ...

Построение базы знаний PROLOG
Помогите решить пожалуйста. Даны результаты сдачи экзаменов для группы из пяти учеников: Построить базу знаний о результатах экзаменов,...

Базы знаний SWI Prolog
Есть база знаний, которая содержит правила вида отдыхать(имя, город). rest('sasha', 'urmala'). rest('anna', 'antalia'). ...

2
 Аватар для arlat
798 / 601 / 158
Регистрация: 07.10.2013
Сообщений: 1,330
13.03.2015, 10:11
diagnosis_is сразу дает неудачу, т.к. любой positive дает неудачу, т.к. не находит запомненных ответов (remember) на вопросы (vopros), не хватат найденного кода, однако

Добавлено через 3 минуты
Цитата Сообщение от NewNew Посмотреть сообщение
очень срочно нужно
срочно не поможет, надо
Цитата Сообщение от NewNew Посмотреть сообщение
из моих скудных знаний пролога
менять ситуацию. если даже найдете правильный код, но не сможете объяснить, это все-равно не зачёт. если преподу по фигу объяснения, то и этот код можно предоставить...
0
0 / 0 / 0
Регистрация: 01.07.2013
Сообщений: 4
13.03.2015, 12:48  [ТС]
Преподу пофиг, но чтобы она работала нужно обязательно)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.03.2015, 12:48
Помогаю со студенческими работами здесь

Swi-prolog. Работа с базой знаний
Текст задания:В базе данных лаборатории хранится следующая информация об исследуемых водоемах: Название водоема; Тип (озеро, болото,...

База знаний
Определить наличие вирусов в компьютере по характерным их проявлениям, если таковые наблюдаются. База знаний содержит сведения о...

База знаний «Золотой ключик»
База знаний «Золотой ключик»: взрослый(папа_карло,шарманщик). взрослый(джузеппе, столяр). ...

составные объекты - база знаний о семье
Необходимо сформировать базу данных о своей семье и семьях родственников и/или знакомых. Каждая семья описывается одним предложением....

База знаний: классификация минералов по их характеристикам или свойствам.
помогите пожалуйста Определить базу знаний, разработать механизм вывода, интерфейс для программы (ЭС), позволяющую провести...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru