Прога неправильно определяет братьев. Visual Prolog 5.2

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

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

Листинг программы
  1. predicates
  2. мужской(symbol)
  3. женский(symbol)
  4. родители(symbol, symbol, symbol)
  5. сестра(symbol Кто, symbol Кому)
  6. брат(symbol, symbol)
  7. старт()
  8. clauses
  9. мужской(игорь).
  10. мужской(алексей).
  11. мужской(вадим).
  12. мужской(виталий).
  13. мужской(александр).
  14. мужской(вячеслав).
  15. женский(ирина).
  16. женский(вера).
  17. женский(валентина).
  18. родители(игорь, алексей, ирина). %Здесь такой порядок: родители(сын/дочь, отец, мать)
  19. родители(ирина, вячеслав, вера).
  20. родители(алексей, вадим, валентина).
  21. родители(александр, вячеслав, вера).
  22. родители(виталий, вадим, валентина).
  23.  
  24. сестра(Сестра, Брата):-женский(Сестра),родители(Сестра,_,Мама),родители(Брата,_,Мама), мужской(Брата).
  25. брат(Брат, Сестры):-мужской(Брат),родители(Брат,_,Мама),родители(Сестры,_,Мама),женский(Сестры).
  26. брат(Брат, Брата):-мужской(Брат), родители(Брат,Папа,Мама),родители(Брата,Папа,Мама),мужской(Брата).
  27.  
  28. старт:-сестра(Кто, Кому), write(Кто, " является сестрой для человека по имени " ,Кому),nl, fail.
  29. старт:-брат(Кто, Кому), write(Кто, " является братом для человека по имени " ,Кому),nl, fail.
  30.  
  31. goal старт.
Сестру находит нормально (Ирина сестра Александра), а вот с братьями проблема. По условию Виталий брат Алексею, соответственно Алексей брат Виталию, Александр брат Ирине. Александр брат Ирине выводится правильно и один раз. Но с братьями косяк. Вот что выводит прога: ирина является сестрой для человека по имени александр ////%тут правильно александр является братом для человека по имени ирина ////%правильно игорь является братом для человека по имени игорь //// %ошибка алексей является братом для человека по имени алексей ////%ошибка алексей является братом для человека по имени виталий //// %правильно виталий является братом для человека по имени алексей //// %правильно виталий является братом для человека по имени виталий //// %ошибка александр является братом для человека по имени александр //// %ошибка Почему прога выводит в братья одного и того же человека? Как исправить? P.S. В прологе новичок!

Решение задачи: «Прога неправильно определяет братьев. Visual Prolog 5.2»

textual
Листинг программы
  1. Брат <> Брата

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


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

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

13   голосов , оценка 4.462 из 5

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

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

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