Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Задача на Логику
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
ilnur163 ilnur163 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.01.2018
По умолчанию Задача на Логику - 18.01.2018, 19:24

Доброго времени суток , нужна помощь (я первый
раз пишу на прологе), выходят ошибки :
E;Test_Goal, pos: 425, 404 Undeclared predicate, misspelling or not supported on chosen platform unique
E;Test_Goal, pos: 677, 404 Undeclared predicate, misspelling or not supported on chosen platform member
E;Test_Goal, pos: 1243, 404 Undeclared predicate, misspelling or not supported on chosen platform start
Задача :
На экскурсию в Эрмитаж приехали трое туристов – Кузнецов, Смирнов
и Попов. Один из них из Казани, другой – из Самары, третий – из Москвы.
Выяснилось, что житель Казани купил билет самым первым из троих.
Кузнецов из Самары купил билет раньше, чем тот, кто живет в гостинице
№1. Смирнов, живущий в гостинице №2, купил билет раньше, чем москвич.
Один из них живет в гостинице №3.
Определите, кто из какого города, и кто в какой гостинице живет.

Решение:
prolog Код:
domains
n=symbol
c=symbol
g=symbol
b=symbol
Mans=symbol
predicates
name(n)
city(c)
gostin(g)
bilet(b)
solve(Mans)
clauses
name("Smirnov").
name("Kuznecov").
name("Popov").
city("Samara").
city("Moskva").
city("Kazan").
gostin("1").
gostin("2").
gostin("3").
bilet("1").
bilet("2").
bilet("3").
 
solve(Mans):-Mans = [man(X, XCit, XGos, XBil), man(Y, YCit, YGos, YBil), man(Z, ZCit, ZGos, ZBil)],
  name(X), name(Y), name(Z), unique([X, Y, Z]),
  city(XCit), city(YCit), city(ZCit), unique([XCit, YCit, ZCit]),
  gostin(XGos), gostin(YGos), gostin(ZGos), unique([XGos, YGos, ZGos]),
  bilet(XBil), bilet(YBil), bilet(ZBil), unique([XBil, YBil, ZBil]),
  % Kazan kupil bilet 1
  member(man(_, "Kazan", _, 1), Mans),
  % Kuznecov iz Samara
  member(man("Kuznecov", "Samara", _, "KuznecevPos"), Mans),
  % Kuznecov iz Samara kupil bilet ranshe chem tot kto chivet d gostinice 1
  member(man(_, _, "1", "Gos1Pos"), Mans),"KuznecevPos" < "Gos1Pos",
  % Smirnov chevet gostinice 2
  member(man("Smirnov", _, "2", "SmirnovPos"), Mans),
  % Smirnov chevet gostinice 2 kupil bilet ranshe chem moskvich
  member(man(_, "Moskva", _, "MoskvaPos"), Mans), "SmirnovPos" < "MoskvaPos",
  % Odin iz nih chevet v ostinice 3
  member(man(_, _, "3", _), Mans).
start(Solve):-solve(Solve), Solve = [man(_, _, _, 1), man(_, _, _, 2), man(_, _, _, 3)].
Ответить с цитированием
  (#2 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 19.01.2018, 00:00

В программе не объявлены предикаты: unique, member и start.
Предикаты unique и start формально можно объявить так:
Visual Prolog Код:
domains
clist = c*
predicates
start(Mans)
unique(clist)
А вот с member у Вас будут проблемы. Он использует домен man, который нигде не описан.
Ответить с цитированием
  (#3 (permalink)) Старый
ilnur163 ilnur163 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.01.2018
По умолчанию 19.01.2018, 01:51

Цитата:
Сообщение от Винитарх Посмотреть сообщение
В программе не объявлены предикаты: unique, member и start.
Предикаты unique и start формально можно объявить так:
Visual Prolog Код:
domains
clist = c*
predicates
start(Mans)
unique(clist)
А вот с member у Вас будут проблемы. Он использует домен man, который нигде не описан.
Спасибо большое за помощь а как описать man ?
Ответить с цитированием
  (#4 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,956
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 19.01.2018, 23:32

Цитата:
Сообщение от ilnur163 Посмотреть сообщение
как описать man ?
Понятия не имею. Это не моя прога, а разбираться в чужих дебрях не хочу.
Ответить с цитированием
Ads
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на логику AR-MAD Prolog 10 15.10.2013 00:10
Придумать алгоритм (логику) Wadik Вопросы начинающих программистов 3 21.04.2011 23:38
Помогите решить задачу на логику про зоопарк integral1234 Prolog 12 21.01.2010 15:05
Задачи на логику Garik Prolog 17 07.01.2010 16:30
Задачка на логику )) Виталик 1 Офтопик 25 05.01.2010 22:39
Непростая задачка на логику Sliderz Prolog 3 29.11.2009 00:02
БД "семья" и задача на логику killhamster Prolog 3 07.05.2009 10:56
Вопрос на логику Виталик 1 Офтопик 8 22.06.2008 15:27
Задачки на логику как решить на Lisp ff-uu Lisp 0 08.05.2008 17:00
Задачи на логику высказываний Sever Prolog 3 10.03.2005 15:47
Задача на логику высказываний Sever Prolog 2 02.03.2005 17:43



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