![]() |
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
|
Гость ![]() |
Почему же нельзя? Можно, тот же Турбо-Пролог нормально компилирует это. Но только тогда, когда в Predicates (не знаю, как это называется в твоем компиляторе, там, где пишутся прототипы всех функций) описаны прототипы Man и Woman
|
18192123 |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
...нормально компилирует это. Но только тогда, когда в Predicates (не знаю, как это называется в твоем компиляторе, там, где пишутся прототипы всех функций) описаны прототипы Man и Woman тоже не знаю, где у меня эти прототипы нужно описать.. ещё появился такой вариант: Код gander(petr,M). gander(ivan,M). gander(oleg,M). gander(sergey,M). gander(lidia,W). gander(olga,W). gander(inna,W). parent(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),not(A=B),gander(A,M). Проходит без ошибок, но никаких изменений в результатах...на запрос о братьях ivan выдает olga, хотя должно быть no... Код ?- brother(X,ivan). X = olga , no ?- |
![]() ![]() |
![]() |
Текстовая версия | 22.06.2025 10:20 |