fork download
  1. include "laba2.inc"
  2.  
  3. domains
  4. stazh_list=integer*
  5. medicine_list=string*
  6.  
  7. predicates
  8. nondeterm login
  9. nondeterm enter_password (integer)
  10. nondeterm password (string)
  11. nondeterm vyvod
  12. nondeterm doctor (string, integer)
  13. nondeterm priem (string, string, string, medicine_list)
  14. nondeterm pacient (string, string)
  15. nondeterm repeat
  16. nondeterm choose_destiny (integer)
  17. nondeterm find_max_stazh
  18. nondeterm find_diagnosis_med (string, string)
  19. nondeterm max_elem (stazh_list, integer)
  20. nondeterm maxl (integer, integer, integer)
  21. nondeterm is_in_med_list(string, medicine_list)
  22. nondeterm find_from_med (string)
  23.  
  24. goal
  25. login.
  26. clauses
  27. password("test").
  28. doctor ("Haus", 20).
  29. doctor ("Caddy", 15).
  30. doctor ("Wilson", 10).
  31. pacient ("Anton", "Volchanka").
  32. priem ("Haus", "Anton", "7:15", ["Vicodin"]).
  33. priem ("Caddy", "Oleg", "11:15", ["Aspirin"]).
  34. priem ("Wilson", "Maria", "13:15", ["Vers"]).
  35.  
  36. login:- clearwindow, enter_password(3), write("Login Unsuccessful"),nl, readchar(_).
  37.  
  38. login :- write("Login Successful"),nl, readchar(_), vyvod.
  39.  
  40. enter_password(Rep):- Rep<>0, write ("Enter Password(test): "), readln (N), not(password(N)), Rep1=Rep-1, enter_password(Rep1).
  41. enter_password(0).
  42.  
  43. vyvod:- repeat,clearwindow, write("Choose your destiny! (1) or (2) or (3)"), readint (Var), choose_destiny (Var),
  44. write("Continue?(n for no)"), readchar(C), C='n'.
  45.  
  46. choose_destiny (1):- write ("Doctor with maximum stazh is: "), find_max_stazh, nl.
  47. choose_destiny (2):- write ("Insert Diagnosis: "), readln(D), nl, write ("Insert Medicine: "), readln(M), find_diagnosis_med(D, M), nl.
  48. choose_destiny (3):- write ("Medicine: "), readln(S), nl, find_from_med(S), nl.
  49.  
  50. find_max_stazh:- max_elem([20, 15, 10], Max), doctor(F,Max), write(F), nl.
  51.  
  52. max_elem ([], Max):- Max=0, !.
  53. max_elem ([X], Max):- Max=X, !.
  54. max_elem ([H|T], Max):- max_elem (T, M), maxl (H, M, Max).
  55. maxl (X1, X2, Max):- X1>=X2, Max=X1, !.
  56. maxl (_, X2, Max):- Max=X2.
  57.  
  58.  
  59. find_diagnosis_med(Diag, Med):- pacient(Name, Diag), priem(Doc, Name, Time, MedList), is_in_med_list(Med, MedList),
  60. write("Doctor: ", Doc), nl, write("Time: ", Time), nl, write("Time: ", Time), nl, fail.
  61. find_diagnosis_med(_,_).
  62.  
  63. is_in_med_list (X, L):- L=[X|_], !.
  64. is_in_med_list (X, L):- L=[_|T], is_in_med_list (X, T).
  65.  
  66. find_from_med(String):- fronttoken(String, T, Rest), write(T), priem(Doc, Name, Time, MedList), is_in_med_list (T, MedList), write(MedList), find_from_med(Rest).
  67. find_from_med(_):- !.
  68.  
  69. repeat.
  70. repeat:-repeat.
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.pl:1:9: syntax error: . or operator expected after expression
prog.pl:27:2: syntax error: . or operator expected after expression
prog.pl:28:9: syntax error: . or operator expected after expression
prog.pl:29:9: syntax error: . or operator expected after expression
prog.pl:30:9: syntax error: . or operator expected after expression
prog.pl:31:10: syntax error: . or operator expected after expression
prog.pl:32:8: syntax error: . or operator expected after expression
prog.pl:33:8: syntax error: . or operator expected after expression
prog.pl:34:8: syntax error: . or operator expected after expression
prog.pl:40:27: syntax error: . or operator expected after expression
prog.pl:43:87: syntax error: . or operator expected after expression
prog.pl:46:17: syntax error: . or operator expected after expression
prog.pl:47:17: syntax error: . or operator expected after expression
prog.pl:48:17: syntax error: . or operator expected after expression
prog.pl:52:11: syntax error: . or operator expected after expression
prog.pl:53:11: syntax error: . or operator expected after expression
prog.pl:54:11: syntax error: . or operator expected after expression
prog.pl:55:7: syntax error: . or operator expected after expression
prog.pl:56:7: syntax error: . or operator expected after expression
prog.pl:63:17: syntax error: . or operator expected after expression
prog.pl:64:17: syntax error: . or operator expected after expression
prog.pl:66:113: syntax error: . or operator expected after expression
prog.pl:69: fatal error: redefining built-in predicate repeat/0
compilation failed
stdout
Standard output is empty