Как оформить логическое условие? - Prolog

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

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

У меня есть предикаты father(s,s), mother(s,s) и parent(s,s). (отец, мать и родитель) и я записал эти данные. Добавил новый предикат sister_brother(s,s) и не могу сформулировать условие. sister_brother(X,Y) если (father(Z,X) и father(Z,Y)) или (mother(Z,X) и mother(Z,Y)). Т е человек X будет являться сестрой,братом для Y, если у них один и тот же отец Z или одна и та же мать Z. Условие если пишется ":-". Логическое-И - ",". А логическое ИЛИ - ";". Но не пойму как сделать чтобы выполнялось как в условии учитывая скобки.

Решение задачи: «Как оформить логическое условие?»

textual
Листинг программы
sister_brother1(X,Y):-mother(Z,X), mother(Z,Y).
sister_brother2(X,Y):-father(Z,X), father(Z,Y).
sister_brother(X,Y):-sister_brother1(X,Y) ; sister_brother2(X,Y), not(sister_brother1(X,Y)).

Объяснение кода листинга программы

В этом коде представлены три утверждения (предложения) на языке Prolog, которые описывают отношения между братьями и сестрами.

  1. Утверждение sister_brother1(X,Y):-mother(Z,X), mother(Z,Y) говорит о том, что X является братом Y, если оба являются детьми одного и того же родителя (обозначенного как Z).
  2. Утверждение sister_brother2(X,Y):-father(Z,X), father(Z,Y) говорит о том, что X является братом Y, если оба являются детьми одного и того же родителя (обозначенного как Z).
  3. Утверждение sister_brother(X,Y):-sister_brother1(X,Y) ; sister_brother2(X,Y), not(sister_brother1(X,Y)) используется для определения, является ли X братом Y. Если X является братом Y согласно любому из двух предыдущих утверждений, то это утверждение истинно. Если X является братом Y согласно первому утверждению, но не согласно второму, то это утверждение ложно.

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


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

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

15   голосов , оценка 4.2 из 5