Задача про авиационное подразделение, не понятно в чём ошибка - Prolog

Узнай цену своей работы

Формулировка задачи:

/** Задача решается табличным способом. В авиационном подразделении служат Потапов,Щедрин,Семенов, Коновалов и Самойлов. Их специальности (они перечислены не в том порядке, что и фамилии):пилот, штурман, бортмеханник, радист и синоптик. Об этих людях известно следующее: 1) Щедрин и Коновалов не умеют управлять самолетом. 2) Потапов и Коновалов готовятся стать штурманами. 3) Щедрин и Самойлов живут в одном доме с радистом. 4) Семенов был в доме отдыха вместе со Щедриным и сыном синоптика. 5) Потапов и Щедрин всвободное время любят играть в шахматы с бортмехаником. 6) Коновалов, Семенов и синоптик увлекаются боксом. 7) Радист боксом не увлекается. Определить кто имеет какую специальность. ___________________________________________________________________ | | | | | | | | | Потапов | Щедрин | Семенов | Коновалов | Самойлов | |__________|___________|__________|_________|___________|___________| | | | | | | | | Пилот | - | - | + | - | - | |__________|___________|__________|_________|___________|___________| | | | | | | | | Штурман | - | + | - | - | - | |__________|___________|__________|_________|___________|___________| | | | | | | | | Бортмех | - | - | - | + | - | |__________|___________|__________|_________|___________|___________| | | | | | | | | Радист | + | - | - | - | - | |__________|___________|__________|_________|___________|___________| | | | | | | | | Синоптик | - | - | - | - | + | |__________|___________|__________|_________|___________|___________| **/ /**/
/**/ Ошибка какая-то.Объясните пожалуйста.

Решение задачи: «Задача про авиационное подразделение, не понятно в чём ошибка»

textual
Листинг программы
predicates pilot(symbol)  shturm(symbol)  radist(symbol)  sinoptik(symbol)   bort(symbol)
clauses
  fam("Потапов"). fam("Щедрин"). 
  fam("Семенов"). fam("Коновалов"). fam("Самойлов").
  
     pilot(X):-fam(X),    not(X="Щедрин"),  not(X="Коновалов"). 
     shturm(X):-fam(X),   not(pilot(X)),    not(X="Потапов"),   not(X="Коновалов").
     radist(X):-fam(X),   not(pilot(X)),    not(shturm(X)),     not(X="Щедрин"),
                          not(X="Самойлов"),not(X="Коновалов"), not(X="Семенов").
     sinoptik(X):-fam(X), not(pilot(X)),    not(shturm(X)),     not(radist(X)),
                          not(X="Семенов"), not(X="Щедрин").    
     bort(X):-fam(X),     not(pilot(X)),    not(shturm(X)),     not(radist(X)),
                          not(sinoptik(X)), not(X="Потапов"),   not(X="Щедрин").
 
 
  
  goal clearwindow,
     pilot(X),    write(X," - пилот"), nl,
     shturm(Y),   write(Y," - штурман"), nl,
     radist(Z),   write(Z," - радист"), nl,
     sinoptik(K), write(K," - синоптик"), nl,
     bort(L),     write(L," - бортмеханик"), nl.

Оцени полезность:

11   голосов , оценка 4.091 из 5