Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % Copyright
- implement main
- open core, console, file
- constants
- filename = "symptoms_db.txt".
- f1 = "Повышенный расход топлива".
- f2 = "Двигатель не развивает номинальной мощности".
- f3 = "Затрудненный пуск двигателя".
- f4 = "Неустойчивый холостой ход".
- f5 = "Запах бензина".
- f6 = "Подтехи топлива".
- f7 = "Двигатель не развивает номинальной мощности".
- f8 = "Повышенный расход топлива".
- f9 = "Повышенный расход топлива".
- class facts - symptoms
- malfunction : (string Неисправность). /*Болевые симптомы*/
- class predicates
- start : ().
- diagnosis : ().
- clarificate : () -> boolean. %уточняющие симптомы
- clauses
- start() :-
- retractFactDb(symptoms),
- if not(existExactFile(filename)) then
- write('Файл с симптомами не найден.')
- else
- consult(filename, symptoms),
- diagnosis(),
- !,
- retractFactDb(symptoms)
- end if.
- clarificate() =
- if local('Заложенность носа') and local('Гнусавый голос')
- or local('Усиление респираторной инфекции')
- or local('Першение в горле')
- or local('Кашель')
- or local('Нарушение обаяния')
- or local('Припухлость лица на стороне поражения')
- then
- true
- else
- false
- end if.
- diagnosis() :-
- %подозрение
- if pain('Область лба') or pain('Верхняя челюсть') then
- %высокая вероятность
- if pain('Голова') or pain('Зубы') then
- %очень высокая вероятность, но нужно уточнить
- if pain('Ухо') or local('Повышение температуры') then
- %уточняем симптомы
- if clarificate() = true then
- clearOutput(),
- write('Синусит диагностирован.')
- else
- clearOutput(),
- write('Очень высокая вероятность синусита. Необходимо уточнение.')
- end if
- else
- clearOutput(),
- write('Высокая вероятность синусита.')
- end if
- else
- clearOutput(),
- write('Подозрение на синусит.')
- end if
- else
- clearOutput(),
- write('Синусита нет')
- end if.
- run() :-
- init(),
- clearOutput(),
- write('Система помощи при диагностике синусита\n1 - Диагностика по симтомам\n2 - Выход\nВаш выбор:'),
- C = readChar(),
- if C = '1' then
- start()
- end if.
- end implement main
- goal
- console::runUtf8(main::run).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement