![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Здравствуйте!
Таково содержимое базы: Код %факты parent(petr,ivan). %petr - родитель для ivan parent(petr,olga). parent(lidia,ivan). parent(ivan,sergey). parent(ivan,oleg). parent(oleg,inna). %процедуры ancestor(A,B):-parent(A,B). ancestor(A,B):-parent(C,B),ancestor(A,C). brother(A,B):-parent(C,A),parent(C,B). %A - это брат B, если у них один родитель Проблема в том, что при, например, таком запросе (кто для ivan братья): Код ?- brother(X,ivan). X = ivan , X = olga , X = ivan , no ivan сам себе получается братом... подскажите пожалуйста, как подправить это? и ещё, как учесть, что может быть отношение брат, а может быть сестра..? Сообщение отредактировано: 18192123 - 28.02.2009 20:24 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата на запрос о братьях ivan выдает olga Правильно делает... Ибо надо проверять не пол A, а пол B, ведь на запрос "brother(olga, X)" ты ожидаешь, что именно Брат - мужчина, но никак не Ольга, правда?Добавлено через 2 мин. Брррр... У тебя все перепутано тут... brother(X, ivan) не означает, что надо перечислить всех братьев Ивана, а означает, что надо перечислить всех, кому Иван является братом... А это разные вещи... Делай запрос так: brother(ivan, X), и проверяй пол у второго параметра, а не у первого... |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 12:27 |