![]() |
|
![]() ![]() ![]() |
|
ILYA609 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 11.9.2009 Репутация: нет Всего: нет |
Условие:
Некоторая железнодорожная компания обслуживает n станций S1,S2,...,Sn. Она предлагает улучшить информационное обслуживание клиентов с помощью информаци-онных терминалов, управляемых вычислительной машиной. Клиент набирает название своей станции направления Sa и станции назначения Sd, и ему должна выдаваться схема расписаний поездов с необходимыми пересадками и с минимальным общим временем по-ездки. Разработайте программу для вычисления нужной информации. Пусть расписание (представляющее собой ваш банк данных) изображено соответствующей структурой дан-ных, содержащей время отправления и прибытия всех имеющихся поездов. Разумеется, не все станции связаны непрерывными линиями.
У меня есть файл с моим графом 'schedule.pl', в котором граф описан, как way(СтанцияА, СтанцияБ, ВремяОтправления, ВремяПрибытия), теперь у меня проблема надо сделать проверку, чтобы время отправлния от следующей станции было больше чем время прибытия на эту станцию, т.e. VO надо сравнить с предыдущим VP, не знаю как эту проверку всунуть сюда!:( Может кто поможе?! |
|||
|
||||
Фантом |
|
|||
![]() Вы это прекратите! ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1516 Регистрация: 23.3.2008 Репутация: 6 Всего: 49 |
Если я правильно понял, то при каждом очередном вызове предиката path в предпоследнем аргументе сидит список времен прибытий (естественно, развернутый задом наперед)? Если да, то во вторую ветку предиката надо вставить условие (например, после not(member(Z,Path0)),):
При этом, правда, придется сделать еще одну поправку: перед наиболее общим вариантом предусмотреть упрощенный, для которого список времен прибытий пуст (т.е. случай, когда мы начинаем с первой станции). Можно, правда, обойти ту же проблему и другим путем - при самом первом вызове path принудительно занести в список времен прибытий какое-то время, заведомо меньшее любого другого, тогда дополнительная альтернатива предиката path не потребуется. P.S. А вообще, конечно, в коде полезно писать комментарии. Чтобы проще было разбираться. ![]() Это сообщение отредактировал(а) Фантом - 27.10.2009, 22:34 |
|||
|
||||
ILYA609 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 11.9.2009 Репутация: нет Всего: нет |
Спасибо большое, оказываеться все так просто было!
![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума Prolog | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Prolog | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |