Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Исключение повторов вывода 
V
    Опции темы
Vaz007
Дата 25.2.2015, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 13.5.2009
Где: Москва

Репутация: нет
Всего: нет



Здравствуйте , имеется БД генеалогического древа ,представленная в коде.
Хочу сделать вывод братьев и сестер без повторов (фото вывода прикрепил).
Подскажите пожалуйста как можно сделать его используя cut (!).

Код

male("Владислав").
male("Олег").
male("Данил").
male("Антон").
male("Борис").
male("Владимир").
male("Григорий").
male("Петр").
male("Роман").

female("София").
female("Ксения").
female("Вероника").
female("Мария").
female("Диана").
female("Евгения").
female("Влада").
female("Юлия").
female("Екатерина").
female("Анна").
female("Елена").
female("Наталья").

pair("Владислав","София").
pair("Олег","Ксения").
pair("Владимир","Вероника").
pair("Данил","Диана").
pair("Антон","Евгения").
pair("Борис","Влада").
pair("Виктор","Юлия").
pair("Илья","Екатерина").
pair("Григорий","Анна").
pair("Петр","Елена").
pair("Роман","Наталья").

child("Олег","Владислав").
child("Олег","София").
child("Вероника","Владислав").
child("Вероника","София").
child("Мария","Владислав").
child("Мария","София").
child("Данил","Олег").
child("Данил","Ксения").
child("Юлия","Олег").
child("Юлия","Ксения").
child("Анна","Мария").
child("Евгения","Диана").
child("Евгения","Данил").
child("Екатерина","Юлия").
child("Екатерина","Виктор").
child("Петр","Анна").
child("Петр","Григорий").
child("Борис","Антон").
child("Борис","Евгения").
child("Наталья","Елена").
child("Наталья","Петр").



parent(X,Y):-
    child(Y,X).

father(X,Y):-
    male(X),
    parent(X,Y).

mother(X,Y):-
    female(X),
    parent(X,Y).

sibling(X,Y):-  
    parent(Z,X),  
    parent(Z,Y),
    X =\= Y.


?- sibling(X,Y),write("Брат / сестра: "+X+" для "+Y),nl,fail.



Это сообщение отредактировал(а) Vaz007 - 25.2.2015, 23:38

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  Вывод_Strawberry_Prolog.jpg 71,35 Kb
PM MAIL Jabber   Вверх
Vaz007
Дата 26.2.2015, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 13.5.2009
Где: Москва

Репутация: нет
Всего: нет



решилась задача, на всякий ,если кому понадобиться :
Код

sibs(X,Y):-                       
    child(X,Z),
    child(Y,Z),
    X=\=Y,!.

sibling(X,Y):-  
    (male(X);female(X)),
    (male(Y);female(Y)),
    sibs(X,Y).

PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Prolog | Следующая тема »


 




[ Время генерации скрипта: 0.0922 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.