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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2019, 10:20   #1
dimitruf
 
Регистрация: 14.02.2016
Сообщений: 9
По умолчанию Решение задач с графами в Visual Prolog

Имеется код для выполнения задачи нахождения пути из одного города в другой по графу. Необходимо решить задачу:
1. Найдите все пути от одного пункта до другого, которые содержат не более заданного числа пересадок.
Файл main.pro:
[CODE]% Copyright

implement main
open core

class facts - graph
arc : (string, string, unsigned).

class predicates
depthFirst : (string, string, string* [out], unsigned [out]) nondeterm.
path : (string, string, string*, string* [out], unsigned, unsigned [out]) nondeterm.
edge : (string, string [out], unsigned [out]) nondeterm.

clauses
edge(X, Y, Dist) :-
arc(X, Y, Dist)
or
arc(Y, X, Dist).

depthFirst(Start, Goal, list::reverse(Path), Dist) :-
path(Start, Goal, [Start], Path, 0, Dist).

path(Goal, Goal, Path, Path, Dist, Dist) :-
!.

path(V, Goal, CurrPath, Path, CurrDist, Dist) :-
edge(V, NextV, D),
not(NextV in CurrPath),
path(NextV, Goal, [NextV | CurrPath], Path, CurrDist + D, Dist).

run() :-
CP = commandLineParser::new(),
CP:acceptEmpty := true,
CP:addOption_help("-help"),
% define command line options here
if ErrorMessage = isSome(CParse()) then
stdio::write(ErrorMessage)
else
% place your own code here
file::consult("graph.txt", graph),
depthFirst("Москва", "Псков", Path, D),
stdIO::write(string::concatWithDeli miter(Path, " -> "), " : ", D),
stdIO::write("\n"),
fail
or
_ = stdIO::readLine()
end if.

end implement main

goal
console::run(main::run).[CODE]
Файл с путями:
Вложения
Тип файла: txt graph.txt (1.1 Кб, 30 просмотров)
dimitruf вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать решение предложенной задачи на Visual Prolog katyawapka Помощь студентам 0 13.06.2015 12:19
решение 2х задач Visual Basic ksuuufffka Помощь студентам 1 23.12.2012 18:21
Затруднения с графами. Заказать решение Dinara0505 Помощь студентам 1 14.05.2011 18:02
Мне нужно в программе Visual Basic прописать решение задач!!!!!!!!!!!!!!! Женька Шнель Помощь студентам 2 18.04.2011 14:29