Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Определить кратчайший маршрут от исходной точки в конечную в Turbo Prolog
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Alena- Alena- вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.06.2014
Exclamation Определить кратчайший маршрут от исходной точки в конечную в Turbo Prolog - 18.06.2014, 17:39

Ребят помогите сделать задачу в TP "Определить кратчайший маршрут от исходной точки в конечную" нужна возможность:
1)Добавлять вершину.
2)Удалять существующие.
3)Вывести БД на экран.
4)Пользователь вводит номера вершин которые надо найти.
Буду очень благодарна!
Ответить с цитированием
  (#2 (permalink)) Старый
rrrFer rrrFer вне форума
Р.Р.Р.Ф.Е.Р
 
Сообщений: 207
Сказал(а) спасибо: 12
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 08.09.2008
Адрес: Russia, Krasnoyarsk
По умолчанию 18.06.2014, 19:29

Что-то получилось сделать самостоятельно?
Мне кажется, что нужна возможность добавлять не только вершины, но и дуги.


Решенные задачи на Prolog: http://pro-prof.com/forums/forum/programming/prolog-help
Введение в логическое программирование: http://pro-prof.com/archives/2362
Ответить с цитированием
  (#3 (permalink)) Старый
Alena- Alena- вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 18.06.2014
По умолчанию 18.06.2014, 22:06

Вот это:
prolog Код:
Domains
  node = integer
  way = node*
  lway= way*
 Database
rebro(node,node)
Predicates
  path(node,lway,way)
  go(node,way,way)
  member(node,way)
  reverse(way,way)
  conc(way,way,way)
  conc(lway,lway,lway)
 
Clauses
    path(B,[[B|Was]|T],[B|Was]):-!.
    path(B,[[X|Was]|T],Sol):-
    findall(Y, go(X,Was,Y), TC),
    conc(T,TC,T1),!,
    path(B,T1,Sol).    
 
  go(X,T,[Y,X|T]):-
  rebro(X,Y),
  not(member(Y,T)).
 
  member(X,[X|_]):-!.
  member(X,[_|L]):-member(X,L).
 
  conc([], L, L).
  conc([H|T], L, [H|T1]):-
  conc(T,L,T1).
 
  reverse([],[]).
  reverse([X|T],B):-
  reverse(T,S), conc(S,[X],B).

Goal

  makewindow(10,80,3,"Min put",2,2,15,75),
  consult("DB.pro"),
  A=1,B=5,
  path(B,[[A]],Sol),reverse(Sol,Sol1),
  write("Samiy korotkiy put: ",Sol1),nl;
  write("No go").
Ответить с цитированием
  (#4 (permalink)) Старый
rrrFer rrrFer вне форума
Р.Р.Р.Ф.Е.Р
 
Сообщений: 207
Сказал(а) спасибо: 12
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 08.09.2008
Адрес: Russia, Krasnoyarsk
По умолчанию 20.06.2014, 09:05

prolog Код:
p(0):-
  write("1 - add node"), nl,
  write("2 - ..."), nl,
  readInt(N), !, p(N).
p(1):-
  write("node name: "),
  readln(Name), assert(node(Name)).

Остальное аналогично, только пи добавлении ребра надо проверить что вершина источник и приемник к существуют.

Пишите конкретно в чем проблема, пока что я вижу только скопипащенный откуда-то бездумно код.

А так-то вы вобще не понимаете что за код привели. Вы в задании просите "добавлять вершину", но в приведенном коде в базе данных нет вершин вообще, есть тока ребра.
КОроче код с задачей вобще никак не связан.


Решенные задачи на Prolog: http://pro-prof.com/forums/forum/programming/prolog-help
Введение в логическое программирование: http://pro-prof.com/archives/2362
Ответить с цитированием
Ads
Ответ

Метки
prolog

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно перевести код из Turbo Prolog в Visual Prolog GGHz Prolog 7 08.12.2012 19:46
Маршрут на графе задан списком. Определить, является ли этот маршрут простой цепью. Jey_Dreamer Prolog 10 01.12.2011 17:51
код из turbo prolog в visual prolog posleg Prolog 4 13.06.2011 00:33
turbo prolog Настюша Вопросы начинающих программистов 12 11.05.2011 18:42
Turbo Prolog Янаа Prolog 0 19.01.2011 00:18
Помогите переделать задачу из Turbo Prolog в Visual Prolog 5 imported_Anneta Prolog 3 23.12.2010 22:59
Кто возьмется переписать маленькую программу с Turbo Prolog на Visual Prolog 5.0 (за плату) olik567 Prolog 4 07.10.2009 17:46
Кто возьмется переписать маленькую программу с Turbo Prolog на Visual Prolog 5.0 (за плату) Игоревна Задания за деньги 16 04.01.2008 17:20
Как определить сколько знаков после точки alex_lisonok Visual C++ 13 04.01.2007 18:27
Отличие SWI-Prolog от Turbo Prolog ndn Prolog 1 25.01.2006 12:47
Как переделать Prolog-D на Turbo-Prolog Anonymous Prolog 19 02.01.2004 20:05



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