Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов
Перезагрузить страницу Задача на ПРОЛОГ-Д
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Дядя Саша Дядя Саша вне форума
Member
 
Аватар для Дядя Саша
 
Сообщений: 94
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.02.2009
Адрес: Архангельск
Unhappy Задача на ПРОЛОГ-Д - 27.02.2009, 23:38

Здравствуйте, вот надо сделать задачу на данном языке программирования, если кто-нибудь изучал, помогите решить вопрос о взаимосвязи родственников, имеем:
мама(Оля,Сергей)
папа(Бронислав, Сергей)
брат(Саня,Сергей)
сестра(Наталья,Сергей)
бабушка(Груня,Сергей)

Описание родственников идет от имени Сергея, у его есть папа,мама, брат, сестра, бабушка. А как установить правило, что они все родственники, т.е. нужно задать вопрос кто является мамой у сестры Натальи, ну и получить ответ Оля. Вариант с описанием всех родственников не катит, т.к. "это слишком просто"
Ответить с цитированием
  (#2 (permalink)) Старый
csbwalker csbwalker вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.03.2009
По умолчанию 03.03.2009, 13:31

Вариант с описанием родственников не катит - имеется ввиду втупую прописать мама(Оля, Наталья) или имеется ввиду что-то другое?
Установить что они родственники - имеется ввиду полный набор? Просто есть набольшая проблема - бабушка она чья мама? Оли или Бронислава? Или нужно только для младшего поколения?
Ответить с цитированием
  (#3 (permalink)) Старый
Дядя Саша Дядя Саша вне форума
Member
 
Аватар для Дядя Саша
 
Сообщений: 94
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.02.2009
Адрес: Архангельск
По умолчанию 03.03.2009, 22:36

Фу, я думал никто не поможет. Вариант, что прописать типа:
мама(Оля,Сергей)
мама(Оля,Саня)
мама(Оля,Наталья)
папа(Бронислав, Сергей)
папа(Бронислав, Саня)
папа(Бронислав, Наталья)
брат(Саня,Сергей)
брат(Сергей,Саня)
и т.п.
Не катит, т.к. больно просто, надо установить связь между всеми родственниками, что Саня Сергей и Наталья они друг другу братья и сестры, и что Оля и Бронислав являются тоже ссответсвенно мамой и папой Наталье и Сане, а бабушку выкинуть вобще можно. Связь родственников типа:

мама(Оля,Сергей):-брат(Саня,Сергей)

И чтоб потом можно было задать вопрос кто является мамой или папой Сани и Натальи. Вот. Связь я не знаю как установить, т.к. нам сказали делайте лабы и все. Перепробывал все варианты.
Ответить с цитированием
  (#4 (permalink)) Старый
csbwalker csbwalker вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.03.2009
По умолчанию 04.03.2009, 12:37

Тут нужно использовать переменные (начинаются с заглавных букв или с символа подчеркивания).
Для определения кто чья мама подойдёт такое описание:
мама(X, Y) :- брат(Y, Z), мама(X, Z).
мама(X, Y) :- сестра(Y, Z), мама(X, Z).

Что по русски звучит "X - мама Y при условии, что Y - брат Z, а X - мама Z"
И то же самое для сестры.

Где-то через час будет минутка - напишу целиком код программы для определения кто чей мама\папа и сестра\брат.
Ответить с цитированием
  (#5 (permalink)) Старый
csbwalker csbwalker вне форума
Новичок
 
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.03.2009
По умолчанию 04.03.2009, 14:01

В общем вот что получилось:

мама(X, Y) :- брат(Y, Сергей), мама(X, Сергей).
мама(X, Y) :- сестра(Y, Сергей), мама(X, Сергей).
папа(X, Y) :- брат(Y, Сергей), папа(X, Сергей).
папа(X, Y) :- сестра(Y, Сергей), папа(X, Сергей).

сестра(X, Y) :- НЕ(РАВНО(Y, Сергей)), сестра(X, Сергей), брат(Y, Сергей).
сестра(X, Y) :- НЕ(РАВНО(Y, Сергей)), сестра(X, Сергей), сестра(Y, Сергей).
брат(X, Y) :- НЕ(РАВНО(Y, Сергей)), брат(X, Сергей), брат(Y, Сергей).
брат(X, Y) :- НЕ(РАВНО(Y, Сергей)), брат(X, Сергей), сестра(Y, Сергей).

мама(Оля,Сергей).
папа(Бронислав, Сергей).
брат(Саня,Сергей).
сестра(Наталья,Сергей).
НО! Есть тут одна непонятка - написал прогу я исходя из того что ты в первом посте указал что всё описывается именно от имени Сергея.
Соответственно всё работает при таком раскладе нормально, но если ты попробуешь сообщить ему факт где будет указан не Сергей - будет косяк.
Сделал я это из расчета что бы не усложнять излишне прогу раз такие условия.
Если это не так - пиши, чего-нить придумаем!

Последний раз редактировалось csbwalker; 04.03.2009 в 14:34
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Дядя Саша Дядя Саша вне форума
Member
 
Аватар для Дядя Саша
 
Сообщений: 94
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.02.2009
Адрес: Архангельск
По умолчанию 04.03.2009, 15:37

Не, все гуд, даже если что-то не прокатит скажу чтоб объяснял тогда как пральна. Огромнейшее тебе СПАСИБО, никто вобще просто не знает как это сделать, выручил!
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пролог Hevadimka Работа 0 04.01.2012 12:21
Помогите, задача по прологу, срочно...задача с высказываниями 4ixOn Prolog 6 10.07.2011 23:29
Помогите, задача по прологу, срочно...задача о станках 4ixOn Prolog 3 09.07.2011 22:48
Задача,Пролог Paradox84 Prolog 0 26.05.2011 14:09
Задача на строки,Пролог! Irina0706 Prolog 7 02.02.2011 15:51
Найдите ошибку.Логическая задача,турбо Пролог Irina0706 Prolog 0 24.01.2011 20:04
помогите пожалуйста. Задача пролог Татьянаaa Prolog 9 11.01.2011 22:43
Помогите пожалуйста очень нужна задача Пролог 2.0 Anjela Prolog 2 05.05.2010 00:05
Задача с Паскаль на Пролог diana_proga Prolog 0 24.11.2009 20:34
Пролог для КПК BelMary Prolog 3 25.05.2008 22:16
ПРОЛОГ.Задача на списки Strucka Prolog 2 28.05.2007 17:15
C# + Пролог Dmytro Prolog 10 02.08.2005 23:32



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов