Advertisement
kokusz19

Fejlett következtetési módszerek v2 - Egyetem - Prolog

May 3rd, 2020
991
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 2.43 KB | None | 0 0
  1. vezeteknev(egressy).
  2. vezeteknev(fenyvesi).
  3. vezeteknev(gallyas).
  4. vezeteknev(jeney).
  5. vezeteknev(vadkerti).
  6.  
  7. keresztnev(edina).
  8. keresztnev(frida).
  9. keresztnev(gabriella).
  10. keresztnev(józsef).
  11. keresztnev(vince).
  12.  
  13. egyetem(budapest).
  14. egyetem(debrecen).
  15. egyetem(miskolc).
  16. egyetem(pécs).
  17. egyetem(szeged).
  18.  
  19. szak(biológia).
  20. szak(informatika).
  21. szak(jog).
  22. szak(kémia).
  23. szak(magyar).
  24.  
  25.  
  26.  
  27. % Render the houses term as a table.
  28. :- use_rendering(table,
  29.          [header(h('Vezeteknev', 'Keresztnev', 'Egyetem', 'Szak'))]).
  30.  
  31. /*   1) A fenyvesi vezetéknevű lány jogot tanul, de nem Debrecenben
  32.      2) József (nem ő Gallyas) az egyik fővárosi egyetemen tanul, de nem biológiát
  33.      3) Vadkerti Gabriella nem a szegedi kémiaszakos hallgató
  34.      4) Jeney (ő Pécsett tanul) keresztneve nem Vince
  35.      5) Frida magyartanár szeretne lenni
  36.      6) Edina vezetékneve vagy Egressy, vagy Miskolcon tanul
  37.      7) Az informatikusnak készülő egyetemista nemrég nősült  */
  38.  
  39. hallgatok(H) :-
  40.     % h(vezetéknév, keresztnév, egyetem, szak)
  41.     length(H, 5),                                                                                                                       % 0
  42.     member(h(fenyvesi,K,E,jog), H), keresztnev(K), egyetem(E), K \= vince, K \= józsef, E \= debrecen,                                 % 1
  43.     member(h(V,józsef,budapest,S), H), vezeteknev(V), szak(S), V \= gallyas, S \= biológia,                                           % 2
  44.     member(h(vadkerti,gabriella,E2,S2), H), egyetem(E2), szak(S2), E2 \= szeged, S2 \= kémia,                                          % 3                                                                      % 3+
  45.     member(h(jeney,K2,pécs,_), H), keresztnev(K2), K2 \= vince,                                                                        % 4
  46.     member(h(_,frida,_,magyar), H),                                                                                                     % 5
  47.     member(h(V2, edina, E3, _), H), vezeteknev(V2), egyetem(E3), (   V2 = egressy, E3 \= miskolc ; V2 \= egressy, E3 = miskolc),        % 6
  48.     member(h(_,K3,_,informatika),H), keresztnev(K3), (   K3 = józsef; K3 = vince).                                                     % 7                                                    
  49.  
  50. hianyzok(H):-
  51.     member(h(gallyas,_,_,_),H),
  52.     member(h(egressy,_,_,_),H),
  53.     member(h(_,vince,_,_),H),
  54. %    member(h(_,józsef,_,_),H),
  55.     member(h(_,_,debrecen,_),H),
  56.     member(h(_,_,miskolc,_),H),
  57.     member(h(_,_,_,biológia),H),
  58.     member(h(_,_,szeged, kémia), H).
  59.  
  60. sorrend(H):-
  61.     nth0(0, H, h(gallyas,_,_,_)),
  62.     nth0(1, H, h(jeney,_,_,_)),
  63.     nth0(2, H, h(egressy,_,_,_)),
  64.     nth0(3, H, h(fenyvesi,_,_,_)).
  65.  
  66. solution3(H):-
  67.     hallgatok(H), hianyzok(H), sorrend(H).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement