Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2016, 17:39   #1
alina1995
Пользователь
 
Регистрация: 13.11.2014
Сообщений: 15
По умолчанию Предикаты / Факты - Prolog

Всем привет написала вот такую задачку, вроде все правильно, все работает, но преподаватель сказал поправить Шурина..Но я сижу и не понимаю что с ним не так.. можете кто нибудь пожалуйста проверить правильность программы, заранее большое спасибо!
Условие задачи:
Используя предикаты parent(symbol,symbol), man(symbol), woman(symbol), married(symbol,symbol), записать факты, описывающие вашу семью. Записать 8 правил вывода для любых родственных отношений в вашей семье (например: мать, отец, сестра, брат, племянница, племянник, тетя, дядя, внучка, внук, бабушка, дедушка, двоюродная сестра, двоюродный брат и т.д.).
Текст:
parent("Alexandr","Olya").
parent("Masha","Olya").
parent("Alexandr","Alina").
parent("Masha","Alina").
parent("Alexandr","Leha").
parent("Masha","Leha").
parent("Leha","Gleb").
parent("Dasha","Gleb").
parent("Alina","Maks").
parent("Leha","Maks").

man("Alexandr").
man("Leha").
man("Pavel").
man("Dima").
woman("Olya").
woman("Alina").
woman("Masha").
married("Masha","Pavel").
married("Alina","Dima").

father(X,Y):-parent(X,Y),man(X),!.
mother(X,Y):-parent(X,Y),woman(X),!.
sister(X,Y):-parent(Z,X),parent(Z,Y),woman(X), X\=Y,!.
brother(X,Y):-parent(Z,Y),parent(Z,X),man(X), X\=Y,!.
son(X,Y):-parent(X,Y),man(Y),!.
daughter(X,Y):-parent(X,Y),woman(Y),!.
wife(X,Y):-married(X,Y), woman(X),!.
husband(X,Y):-married(X,Y),man(Y),!.
shurin(X,Y):-man(Y),married(Z,Y),brother(X,Z),!.
tesha(X,Y):-married(Z,Y),mother(X,Z),!.
dyadya(X,Y):-parent(Z,Y),brother(X,Z),!.

?-father(X,"Olya"),write(X),write(" ").
?-mother(X,"Alina"),write(X),write(" ").
?-married("Alina","Dima"),write(" ").
?-husband("Masha",Y),write(Y),write(" ").
?-wife(X,"Pavel"),write(X),write(" ").
?-sister("Olya","Alina"),write(" ").
?-shurin(X,"Dima"),write(X),write(" ").
?-tesha(X,"Dima"),write(X),write(" ").
?-dyadya(X,"Maks"),write(X),write(" ").
alina1995 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите пожалуйста перенести программу написанную в Prolog в Strawberry prolog Олямбан Помощь студентам 1 14.11.2015 19:51
Любопытные факты Utkin Свободное общение 177 21.10.2015 11:08
Дискретная математика, предикаты... manchester_alan Помощь студентам 1 20.06.2015 17:02
Предикаты _-Re@l-_ Общие вопросы C/C++ 11 04.07.2011 08:13
Предикаты Bernuar Помощь студентам 0 06.04.2010 09:26