| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Prolog > Помогите разобраться в чем дело! |
| Автор: kuller 10.9.2008, 11:34 | ||||
Вобщем мне дано дерево, в котором есть Муж, Жена и Дети.... ну вот задача вывести кто кому является племянниками ... вначале решил вывести только племянников М и Ж пола .. вот написал программу:
Вот результат:
выдает 9 результатов ... а должна только 3: man and wonam X=alex, Y=juli man and wonam X=alexandr, Y=juli man and wonam X=kostya, Y=lyuda помогите разобраться в чем дело. Заранее благодарен! |
| Автор: sadgb 12.9.2008, 23:39 |
| я немного подправил код plem(X,Y):- parent(Z,Y), parent(A,Z), parent(B,Z), parent(C,X), parent(A,C), parent(B,C), X\=Y, Z\=C, man(X), woman(A), man(B), woman(Y). на выходе 2 резалта алекс с джули и александр с джули насчёт кости и люды ты поторопился с выводами - если нарисовать дерево то видно что у них общий дед но это не означает что их родители родные братья - возможно они сводные. если добавить в базу строку вида parent(liza,alexandr). тогда костя с лидой и правда станут племяниками и программа выдаст 3 результата по поводу твоего варианта тебе наверно интересно почему у тебя алекс и джули 4 раза : отвечаю исходя из твоих обозначений варианты A=anna B=sergey A= sergey B=anna A= sergey B = sergey A= anna B = anna думаю понял в чём была проблема . удачи. если помог плюсуй ) |