Семейные отношения - Prolog
Формулировка задачи:
Для семей, изображенных на схеме:
задайте факты типа:
– мужчина (одноаргументный, всего 5 фактов),
– женщина (одноаргументный, всего 4 факта),
– родитель (двухаргументный, всего 8 фактов),
– в браке (двухаргументный, всего 2 факта).
Создайте двухаргументные предика'ты (первый аргумент входной, второй – выходной), определяющие для конкретного человека (указанного в первом аргументе):
1) мать/отца; 4) кровную сестру/брата;
2) дочь/сына; 5) сводную сестру/брата;
3) сестру/брата; 6) жену/мужа.
Не могу разобраться со сводными сестрами/братьями, помогите, пожалуйста
Решение задачи: «Семейные отношения»
textual
Листинг программы
(not(mother(X, _)); not(mother(Y, _)); mother(X, MX), mother(Y, MY), MX\=MY)
Объяснение кода листинга программы
В коде идет проверка на то, что у двух людей нет общих родителей, а именно:
- Либо у первого человека нет матери (not(mother(X, _))).
- Либо у второго человека нет матери (not(mother(Y, _))).
- У первого человека есть мать (mother(X, MX)).
- У второго человека есть мать (mother(Y, MY)).
- Мать первого человека не равна матери второго человека (MX\=MY).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д