Логическая задача на TurboProlog

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

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

Здравствуйте, помогите пожалуйста написать задачу на TurboProlog. Для четырех дружинников, фамилии которых начинаются буквами А, Е, Р, С, необходимо составить график дежурств на четыре вечера подряд, учитывая, что: 1) С и Р не могут дежурить в первый вечер в связи с командировкой: 2) если С выйдет во второй вечер или Р — в третий, то Е сможет подежурить в четвертый; 3) если А не будет дежурить в третий вечер, то Е согласен дежурить во второй вечер; 4) если Р в четвертый вечер уедет на конференцию, то А придется дежурить в первый, а С в третий вечер.
мой код не работает
Листинг программы
  1. domains
  2. slist=string*
  3. man=m(string,string).
  4. men=man*
  5. predicates
  6. permutation(slist,slist).
  7. insert(string,slist,slist).
  8. solve(men).
  9. z(string,string).
  10. check1(string,string,string,string).
  11. clases
  12. insert(X,L,[X|L]).
  13. insert(X,[H|Tail],[H|NewTail]):-insert(X,Tail,NewTail).
  14. permutation([],[]).
  15. permutation([H|Tail],P):-permutation(Tail,PTail),insert(H,PTail,P).
  16. check1([N,_,_,_]):-N<>"c";N<>"p".
  17. check1([_,D,B,"e"]):-C="c";B="p".
  18. check1([_,"e",M,_]):-M<>"a".
  19. check1(["a",_,"e",H]):-h<>"p".
  20. solve(S):-
  21. permutation(["a","e","p","c"],S),
  22. check1(S).
Ошибка 404 undeclared predicate or misspelling

Решение задачи: «Логическая задача на TurboProlog»

textual
Листинг программы
  1. check2([_,С,B,"e"]) :- !,
  2.     D="c";B="p".
  3. check2(_).
  4.  
  5. check3([_,"e",M,_]) :- !,
  6.     M<>"a".
  7. check3(_).
  8.  
  9. check4(["a",_,"e",H]) :- !,
  10.     H<>"p".
  11. check4(_).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

14   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы