Advertisement
YomoMan

Untitled

Nov 17th, 2023
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. % Copyright
  2.  
  3. implement main
  4. open core, console, file
  5.  
  6. constants
  7. filename = "symptoms_db.txt".
  8. f1 = "Повышенный расход топлива".
  9. f2 = "Двигатель не развивает номинальной мощности".
  10. f3 = "Затрудненный пуск двигателя".
  11. f4 = "Неустойчивый холостой ход".
  12. f5 = "Запах бензина".
  13. f6 = "Подтехи топлива".
  14. f7 = "Двигатель не развивает номинальной мощности".
  15. f8 = "Повышенный расход топлива".
  16. f9 = "Повышенный расход топлива".
  17.  
  18. class facts - symptoms
  19. malfunction : (string Неисправность). /*Болевые симптомы*/
  20.  
  21. class predicates
  22. start : ().
  23. diagnosis : ().
  24. clarificate : () -> boolean. %уточняющие симптомы
  25.  
  26. clauses
  27. start() :-
  28. retractFactDb(symptoms),
  29. if not(existExactFile(filename)) then
  30. write('Файл с симптомами не найден.')
  31. else
  32. consult(filename, symptoms),
  33. diagnosis(),
  34. !,
  35. retractFactDb(symptoms)
  36. end if.
  37.  
  38. clarificate() =
  39. if local('Заложенность носа') and local('Гнусавый голос')
  40. or local('Усиление респираторной инфекции')
  41. or local('Першение в горле')
  42. or local('Кашель')
  43. or local('Нарушение обаяния')
  44. or local('Припухлость лица на стороне поражения')
  45. then
  46. true
  47. else
  48. false
  49. end if.
  50.  
  51. diagnosis() :-
  52. %подозрение
  53. if pain('Область лба') or pain('Верхняя челюсть') then
  54. %высокая вероятность
  55. if pain('Голова') or pain('Зубы') then
  56. %очень высокая вероятность, но нужно уточнить
  57. if pain('Ухо') or local('Повышение температуры') then
  58. %уточняем симптомы
  59. if clarificate() = true then
  60. clearOutput(),
  61. write('Синусит диагностирован.')
  62. else
  63. clearOutput(),
  64. write('Очень высокая вероятность синусита. Необходимо уточнение.')
  65. end if
  66. else
  67. clearOutput(),
  68. write('Высокая вероятность синусита.')
  69. end if
  70. else
  71. clearOutput(),
  72. write('Подозрение на синусит.')
  73. end if
  74. else
  75. clearOutput(),
  76. write('Синусита нет')
  77. end if.
  78.  
  79. run() :-
  80. init(),
  81. clearOutput(),
  82. write('Система помощи при диагностике синусита\n1 - Диагностика по симтомам\n2 - Выход\nВаш выбор:'),
  83. C = readChar(),
  84. if C = '1' then
  85. start()
  86. end if.
  87.  
  88. end implement main
  89.  
  90. goal
  91. console::runUtf8(main::run).
  92.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement