Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Воздушный путь
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
PavelPPP
Guest
 
Сообщений: n/a
По умолчанию 12.11.2009, 01:46

у меня есть код программы вычисления пути,но не могу сформулировать домен вида
info=[integer:integer/integer:integer/list]/*это неправельно и вообще бред*/,
что бы описать ,часто после lon,
flay( edin, lon,
[ 9:40 / 10:50 / every,
13:40 / 14:50 / every,
19:40 / 20:50 / [pn, vt, sr, ct, pt, su] ] ).
у кого -нибудь ,есть идеи
Код:
DOMAINS
  list=symbol* 
 
PREDICATES
  reis(symbol,symbol,symbol,integer,integer)
  member(symbol,list)
  flay(symbol,symbol,info)
  day_liv(symbol,list)
  path(symbol,symbol,symbol,list)
  timeliv(info,symbol)
  perexo()
CLAUSES
reiis( P1, P2, Day, TimeLiv, TimeArri) :-
    flay( P1, P2, listR),
    member( TimeLiv / TimeArri / ListD, listR),
    day_liv( День, ListD).

member( X, [X | L] ).

member( X, [Y | L] ) :-
      member( X, L ).

day_liv( Day, ListD) :-
      member( Day, ListD).

day_liv( Day, every) :-
      member( Day, [pn, vt, sr, ct, pt, sa, su] ).

path( P1, P2, Day, [Р1-Р2 : TimeLiv] ) :-
                                               
      reiis( P1, P2, Day, TimeLiv, _ ).

path( Р1, Р2, Day, [Pl-P3 : TimeLiv1 | P]) :-
                                                
      path( Р3, P2, Day, P ),
      reiis( Р1, Р3, Day, TimeLiv1, TimeArri1),
      вр_отпр( P, TimeLiv2),
      пересадка( TimeArri1, TimeLiv2).

timeliv( [Р1-Р2 : Liv | _ ], Liv).

perexo( oh1 : min1, oh2 : min2) :-
      60 * (oh2-oh1) + min2 - min1 >= 40

flay( edin, lon,
      [ 9:40 / 10:50  / every,
      13:40 / 14:50  / every,
      19:40 / 20:50 / [pn, vt, sr, ct, pt, su] ] ).
GOAL
path(edin,lon,pn,R),write(R)
Ответить с цитированием
  (#2 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,961
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 12.11.2009, 13:43

Вы пытаетесь использовать синтаксис безтиповых Прологов в типизированном Прологе. Так у Вас ничего не получится. Совет - избавьтесь от слэшей, двоеточий и пр. Вместо них используйте запятые и скобки так, как это вы делаете описывая структуры в известных вам языках (С,Паскаль и т.п.)
Ответить с цитированием
Ads
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Путь загрузки sapir IT 5 09.03.2011 14:29
Путь к сохранику Dialog567 Компьютерные игры 8 23.02.2011 16:52
Гамильтонов путь OdinKamui Pascal 1 23.06.2009 09:40
Мин. путь на шахматной доске Grande Prolog 0 15.11.2007 21:02
Эйлеров путь Dimitsuri Prolog 1 03.09.2007 17:08
Как отобразить имя файла но не путь BL AF Delphi 5 10.08.2007 22:38
Пропишите в C++Builder6 путь к разархивированной папке где найти этот путь Evangelion C++ Builder 3 11.01.2007 18:13
Относительный путь в С# marika .NET 1 24.04.2006 12:47
Относительный путь Loid Алгоритмы 3 11.03.2006 19:56
минимальный путь groznii Prolog 1 07.10.2005 23:38
*********Путь Воина******** Anonymous Офтопик 0 03.06.2004 11:52
Левый путь Anonymous PHP 1 07.07.2003 17:15



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