Advertisement
Guest User

prolog

a guest
Jan 18th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.14 KB | None | 0 0
  1.  
  2. start :-
  3. write('Program pomagajacy w udzieleniu pierwszej pomocy poszkodowanemu'), nl,
  4. write('zadawaj pytania i powiadom program jaką odpowiedź otrzymałeś'), nl,
  5. write('T (tak) lub N (nie) oraz postepuj zgodnie z zaleceniami'), nl, usun_his , wyswietl.
  6.  
  7.  
  8. wyswietl :- diagnoza(X), odpowiedz(X), fail.
  9. wyswietl.
  10.  
  11. :-dynamic(zapisana/2).
  12.  
  13. otrzymana_odp(P,O) :- zapisana(P,O).
  14.  
  15. otrzymana_odp(P,O) :- \+ zapisana(P,_), nl,
  16. zadaj_pytanie(P),
  17. tak_nie(X),
  18. asserta(zapisana(P,X)),
  19. X=O.
  20.  
  21.  
  22. tak_nie(X) :- get(Char), %wyczytanie odpowiedzi
  23. get0(_),
  24. to(Char,X), ! .
  25.  
  26. tak_nie(X) :- write_ln('Wpisz T/N'), tak_nie(X).
  27.  
  28. to(84,tak).
  29. to(116,tak).
  30. to(78,nie).
  31. to(110,nie).
  32.  
  33. usun_his :- retract(zapisana(_,_)), fail.
  34. usun_his.
  35.  
  36. diagnoza(jeden_odp) :- otrzymana_odp(pierwsze, tak), otrzymana_odp(drugie, tak).
  37.  
  38. diagnoza(dwa_odp) :- otrzymana_odp(pierwsze,tak), otrzymana_odp(drugie,nie),
  39. otrzymana_odp(trzecie,tak).
  40.  
  41. diagnoza(trzy_odp):- otrzymana_odp(pierwsze,tak), otrzymana_odp(drugie,nie),
  42. otrzymana_odp(trzecie,nie),otrzymana_odp(czwarte,tak).
  43.  
  44. diagnoza(cztery_odp):- otrzymana_odp(pierwsze,tak), otrzymana_odp(drugie,nie),
  45. otrzymana_odp(trzecie,nie),otrzymana_odp(czwarte,nie),
  46. otrzymana_odp(piate,tak).
  47.  
  48. diagnoza(piec_odp):- otrzymana_odp(pierwsze,tak), otrzymana_odp(drugie,nie),
  49. otrzymana_odp(trzecie,nie),otrzymana_odp(czwarte,nie),
  50. otrzymana_odp(piate,nie), otrzymana_odp(szoste,tak).
  51.  
  52. diagnoza(szesc_odp):- otrzymana_odp(pierwsze,tak), otrzymana_odp(drugie,nie),
  53. otrzymana_odp(trzecie,nie),otrzymana_odp(czwarte,nie),
  54. otrzymana_odp(piate,nie), otrzymana_odp(szoste,nie),
  55. otrzymana_odp(siodme, tak).
  56.  
  57. diagnoza(siedem_odp):- otrzymana_odp(pierwsze,tak), otrzymana_odp(drugie,nie),
  58. otrzymana_odp(trzecie,nie),otrzymana_odp(czwarte,nie),
  59. otrzymana_odp(piate,nie), otrzymana_odp(szoste,nie),
  60. otrzymana_odp(siodme, nie).
  61.  
  62.  
  63. diagnoza(dwa_odp) :- otrzymana_odp(pierwsze,nie), otrzymana_odp(osme,tak),
  64. otrzymana_odp(trzecie,tak).
  65.  
  66. diagnoza(trzy_odp):- otrzymana_odp(pierwsze,nie), otrzymana_odp(osme,tak),
  67. otrzymana_odp(trzecie,nie),otrzymana_odp(czwarte,tak).
  68.  
  69. diagnoza(cztery_odp):- otrzymana_odp(pierwsze,nie), otrzymana_odp(osme,tak),
  70. otrzymana_odp(trzecie,nie),otrzymana_odp(czwarte,nie),
  71. otrzymana_odp(piate,tak).
  72.  
  73. diagnoza(piec_odp):- otrzymana_odp(pierwsze,nie), otrzymana_odp(osme,tak),
  74. otrzymana_odp(trzecie,nie),otrzymana_odp(czwarte,nie),
  75. otrzymana_odp(piate,nie), otrzymana_odp(szoste,tak).
  76.  
  77. diagnoza(szesc_odp):- otrzymana_odp(pierwsze,nie), otrzymana_odp(osme,tak),
  78. otrzymana_odp(trzecie,nie),otrzymana_odp(czwarte,nie),
  79. otrzymana_odp(piate,nie), otrzymana_odp(szoste,nie),
  80. otrzymana_odp(siodme, tak).
  81.  
  82. diagnoza(siedem_odp):- otrzymana_odp(pierwsze,nie), otrzymana_odp(osme,tak),
  83. otrzymana_odp(trzecie,nie),otrzymana_odp(czwarte,nie),
  84. otrzymana_odp(piate,nie), otrzymana_odp(szoste,nie),
  85. otrzymana_odp(siodme, nie).
  86.  
  87. diagnoza(osiem_odp) :- otrzymana_odp(pierwsze, nie), otrzymana_odp(osme, nie),
  88. otrzymana_odp(dziewiate,tak).
  89.  
  90. diagnoza(dziewiec_odp) :- otrzymana_odp(pierwsze, nie), otrzymana_odp(osme, nie),
  91. otrzymana_odp(dziewiate,nie), otrzymana_odp(dziesiate,nie),
  92. otrzymana_odp(jedenaste,nie).
  93.  
  94. diagnoza(dziesiec_odp) :- otrzymana_odp(pierwsze, nie), otrzymana_odp(osme, nie),
  95. otrzymana_odp(dziewiate,nie), otrzymana_odp(dziesiate,tak),
  96. otrzymana_odp(dwunaste,tak).
  97.  
  98. diagnoza(jedenascie_odp) :- otrzymana_odp(pierwsze, nie), otrzymana_odp(osme, nie),
  99. otrzymana_odp(dziewiate,nie), otrzymana_odp(dziesiate,tak),
  100. otrzymana_odp(dwunaste,nie).
  101.  
  102. diagnoza(dwanascie_odp) :- otrzymana_odp(pierwsze, nie), otrzymana_odp(osme, nie),
  103. otrzymana_odp(dziewiate,nie), otrzymana_odp(dziesiate,nie),
  104. otrzymana_odp(jedenaste,tak), otrzymana_odp(trzynaste,nie),
  105. otrzymana_odp(szesnaste,tak).
  106.  
  107. diagnoza(dwanascie_odp) :- otrzymana_odp(pierwsze, nie), otrzymana_odp(osme, nie),
  108. otrzymana_odp(dziewiate,nie), otrzymana_odp(dziesiate,nie),
  109. otrzymana_odp(jedenaste,tak), otrzymana_odp(trzynaste,tak),
  110. otrzymana_odp(czternaste,nie),otrzymana_odp(pietnaste,_),otrzymana_odp(szesnaste,tak).
  111.  
  112. diagnoza(dwanascie_odp) :- otrzymana_odp(pierwsze, nie), otrzymana_odp(osme, nie),
  113. otrzymana_odp(dziewiate,nie), otrzymana_odp(dziesiate,nie),
  114. otrzymana_odp(jedenaste,tak), otrzymana_odp(trzynaste,tak),
  115. otrzymana_odp(czternaste,tak),otrzymana_odp(szesnaste,tak).
  116.  
  117.  
  118.  
  119. diagnoza(trzynascie_odp) :- otrzymana_odp(pierwsze, nie), otrzymana_odp(osme, nie),
  120. otrzymana_odp(dziewiate,nie), otrzymana_odp(dziesiate,nie),
  121. otrzymana_odp(jedenaste,tak), otrzymana_odp(trzynaste,nie),
  122. otrzymana_odp(szesnaste,nie).
  123.  
  124. diagnoza(trzynascie_odp) :- otrzymana_odp(pierwsze, nie), otrzymana_odp(osme, nie),
  125. otrzymana_odp(dziewiate,nie), otrzymana_odp(dziesiate,nie),
  126. otrzymana_odp(jedenaste,tak), otrzymana_odp(trzynaste,tak),
  127. otrzymana_odp(czternaste,nie),otrzymana_odp(pietnaste,_),otrzymana_odp(szesnaste,nie).
  128.  
  129. diagnoza(trzynascie_odp) :- otrzymana_odp(pierwsze, nie), otrzymana_odp(osme, nie),
  130. otrzymana_odp(dziewiate,nie), otrzymana_odp(dziesiate,nie),
  131. otrzymana_odp(jedenaste,tak), otrzymana_odp(trzynaste,tak),
  132. otrzymana_odp(czternaste,tak),otrzymana_odp(szesnaste,nie).
  133.  
  134. zadaj_pytanie(pierwsze) :- write('Podejdz do osoby poszkodowanej, zapytaj czy osoba Cię słyszy?'),nl.
  135.  
  136. zadaj_pytanie(drugie) :- write('Zapytaj czy moze wstac?'),nl.
  137.  
  138. zadaj_pytanie(trzecie) :- write('Czy spożywał alkohol?'), nl.
  139.  
  140. zadaj_pytanie(czwarte) :- write('Czy upadł z dużej wysokości lub potrącił go samochód?'), nl.
  141.  
  142. zadaj_pytanie(piate) :- write('Czy ma zawroty głowy?'), nl.
  143.  
  144. zadaj_pytanie(szoste) :- write('Czy ma promieniujący ból w klatce piersiowej?'), nl.
  145.  
  146. zadaj_pytanie(siodme) :- write('Czy choruje na coś przewlekle?'), nl.
  147.  
  148. zadaj_pytanie(osme) :- write('Lekko szturchnij poszkodowaną osobę w ramię, czy reaguje?'),nl.
  149.  
  150. zadaj_pytanie(dziewiate) :- write('Czy są podstawy, aby myśleć, że poszkodowany spadł z wysokości lub został potrącony?'), nl,
  151. write(' (Pobliska droga, blok, budowa) '),nl.
  152.  
  153. zadaj_pytanie(dziesiate) :- write('Sprawdź czy oddycha'),nl.
  154.  
  155. zadaj_pytanie(jedenaste) :- write('Ustaw poszkodowanego w pozycji leżącej na plecach. Udało się?'),nl.
  156.  
  157. zadaj_pytanie(dwunaste) :- write('Przyjżyj się poszkodowanej osobie czy krwawi?'),nl.
  158.  
  159. zadaj_pytanie(trzynaste) :- write('Sprawdź czy ma coś w gardle?'),nl.
  160.  
  161. zadaj_pytanie(czternaste) :- write('Dobrze, więc RAZ spróbuj usunąć to PALCEM, czy udało się?'),nl.
  162.  
  163. zadaj_pytanie(pietnaste) :- write('Wdmuchni powietrze w usta, to na pewno pomoże'),nl.
  164.  
  165. zadaj_pytanie(szesnaste) :- write('Przejdź do resuscytacji, czy umiesz to wykonać?'),nl.
  166.  
  167.  
  168. odpowiedz(jeden_odp) :- write_ln('Pomóż wstać oraz odprowadz w bezpieczne miejsce'),nl.
  169.  
  170.  
  171. odpowiedz(dwa_odp) :- write_ln('Wysyłamy na miejsce policję'),nl.
  172.  
  173. odpowiedz(trzy_odp) :- write_ln('Każ mu się nie ruszać, poszkodowany prawodopobonnie'),
  174. write_ln('ma uszkodzony kręgosłup, wysyłamy karetkę na wskazany adres').
  175.  
  176. odpowiedz(cztery_odp) :- write_ln('Podejrzewamy, że dostał udaru słonecznego, wysyłamy karetkę').
  177.  
  178. odpowiedz(piec_odp) :- write_ln('Prawdopobonie osoba ma zawał, ułóż tą osobę w pozycji'),
  179. write_ln('przeciwzawałowej, wysyłamy karetkę'), pozycja.
  180.  
  181. odpowiedz(szesc_odp) :- write_ln('To wynik choroby, karetka juz w drodze').
  182.  
  183. odpowiedz(siedem_odp) :- write_ln('Prawdopoobnie jest to chwilowe osłabienie, pomóż wstać tej osobie'),
  184. write_ln('oraz postaraj się odprowadzić do domu lub wezwać bliską osobę').
  185.  
  186. odpowiedz(osiem_odp) :- write_ln('Pozostaw osobę w danej pozycji, gdy jest możliwe uszkodzenie'),
  187. write_ln('kręgosłupa można tylko zaszkodzić. Poczekaj na karetkę').
  188.  
  189. odpowiedz(dziewiec_odp):- write_ln('Niestety już nie pomożesz, poczekaj na karetkę i spróbuj wezwać'),
  190. write_ln('kogoś z okolicy, może ta osoba będzie wiedzieć co zrobić').
  191.  
  192.  
  193. odpowiedz(dziesiec_odp) :- write_ln('Zatamuj czymś krawawienie, ustaw osobę w pozycji bocznej ustalonej'),
  194. write_ln('oraz poczekaj na karetkę.').
  195.  
  196. odpowiedz(jedenascie_odp) :- write_ln('Ustaw osobe w pozycji bocznej ustalone i poczekaj na karetkę').
  197.  
  198. odpowiedz(dwanascie_odp) :- write_ln('Prowadz resuscytacje aż do momentu przyjazdu pogotowia lub'),
  199. write_ln('do momentu odzyskania oddechu przez osobe poszkodowana'), nl, nl,nl,resuscytacja.
  200.  
  201. odpowiedz(trzynascie_odp) :- write_ln('Szybko znajdź osobę, która umie, skorzystaj z podpowiedzi, karetka juz w drodze'), nl, nl,nl,resuscytacja.
  202.  
  203. resuscytacja() :- write_ln(' Połóż nadgarstek jednej ręki na środku klatki piersiowej poszkodowanego, drugą rękę połóż na już ułożonej. '),
  204. write_ln('Spleć palce obu rąk i upewnij się, czy nie będziesz wywierać nacisku na żebra poszkodowanego. '),
  205. write_ln(' Pochyl się nad poszkodowanym, wyprostowane ramiona ustaw prostopadle do mostka i uciskaj na 4-5 cm'),
  206. write_ln('Powtarzaj uciśnięcia z częstotliwością 100 na minutę. '),
  207. write_ln('Po wykonaniu 30 uciśnięć, udrożnij drogi oddechowe, odginając głowę i unosząc żuchwę'),
  208. write_ln(' Zaciśnij skrzydełka nosa poszkodowanego używając palca wskazującego i kciuka. '),
  209. write_ln('Pozostaw usta delikatnie otwarte. Weź wdech i obejmij szczelnie swoimi ustami usta poszkodowanego.'),
  210. write_ln(' Wdmuchnij powoli powietrze do ust poszkodowanego. '),
  211. write_ln('Ponów tę czynność. '),
  212. write_ln('Ponownie ułóż ręce w prawidłowej pozycji na mostku i wykonaj kolejnych 30 uciśnięć klatki piersiowej. '),
  213. write_ln('Wymienione czynność powtarzaj dopóki poszkodowany nie zacznie prawidłowo oddychać'),
  214. write_ln( 'W innym przypadku nie przerywaj resuscytacji. ').
  215.  
  216.  
  217.  
  218.  
  219. pozycja():- write_ln('Pozycja przeciwzawałowa- pozycja półsiedząca lub boczna ustalonej').
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement