![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#31 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Делал я этот исходник в своем черновом варианте, а там рисунки были удалены.
Тут два пути: 1. Добавить в мой исходник описание этих Image и label, чтобы он их увидел. то есть замени в моем исходнике строки от type до private из своего исходника. 2. Либо посмотри, что у меня заменено и просто скопируй это в свой исходник. Либо, если уж неполучится, то выложи свой исходник модуля Unit1.pas, сделаю замену, чтобы не выдавало ошибок.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
#32 |
Пользователь
Регистрация: 19.04.2009
Сообщений: 45
|
![]()
Помог пункт 2.Всё вроде работает , но всеровно как-то стремно смотрица,я думал может в этом алгоритме не надо будет смотреть справо налево если а больше б. И ещё некоторые пути совсем стремно выводит. Может так и надо???Всё равно спасибо за огромную работу и активное участие с ТВОЕЙ стороны!!!!
Стремно например из Докшицы в Вилейку, не проще ли сразу Докшицы-вилейка, а то объезжает 3 пункта помимо этих 2х??? Слушай, а если чё можно ли придумать с первым алгоритмом штуку, чтоб города если а больше б выводились не через стрелочку <=, а к примеру через =>, как-бы менялись местами,зеркально чёли???А то согласись стремно как-то получается в отношении путей???Тут выходит как-бы ,что со стрелочкой <= смотрелось прятней,чем так??? А путь из докшицы в ошмяны вообще стремный...А ??? МОж в первом алгоритме лучше пашоманить???Я теперь вообще в растеренности,завтра курсач показывать, а в 2ом алгоритме стремно как-то |
![]() |
![]() |
#33 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
В первом алгоритме, где поиск по ширине, Там находился кратчайший путь по индексам городов, которые близко.
Во втором алгоритме Дейкстры (учитывается вес графа, то есть километраж), и близость пункта определяется тем сколько до него километров. Вот например Дотщица - Вилейка(7-2). Если по прямой то 200 километров шпарить. А если в объезд 180 километров (7-6-8-2) посчитай, есть другой путь (7-8-2) там будет 210. Чувствуется разница? Нарисуй граф и поставь весы. то есть график и километры поставь. Тогда выгода выведенного пути сразу ощитится по километражу. Если хочешь, можешь поменять как ты сказал "зеркально", для этого можешь закоментировать ProvPosledov, переменной Napravlenie присвоить тот знак который хочешь, а кусок код изменить так: Код:
Так что здесь два варианта как ты видишь вывода кратчайшего пути, но для автомобилиста я думаю важнее сколько километров надо проехать, ведь от этого зависит расход топлива и время поездки тоже. Поэтому для таких задач и применяют метод Дейкстры. В wikipedia читал? И кстати проверь еще раз матрицу смежности для первого алгоритма, по-моему там где-то ошибка была.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
Последний раз редактировалось ArtInt; 28.04.2009 в 22:28. |
![]() |
![]() |
#34 |
Пользователь
Регистрация: 19.04.2009
Сообщений: 45
|
![]()
[QUOTE=ArtInt;
И кстати проверь еще раз матрицу смежности для первого алгоритма, по-моему там где-то ошибка была.[/QUOTE] Cлушай, смотрел я эту матрицу, и на листике рисовал, но вроде ошибок не увидел,можешь сказать где поточнее???? в строке 7 честно-не вижу. Вот картинка...А вот док-ент, который одержит расстояния между городов,ПОСМОТРИ,ПЛИЗ,нифига не вижу ошибки ( //1 //2 //3 //4 //5 //6 //7 //8 //9 (false, true, true, false, false, false, false, false, false), //1 (true, false, true, false, false, false, true, true, false),//2 (true, true, false, true, true, false, false, false, false),//3 (false, false, true, false, true, false, false, false, false),//4 (false, false, true, true, false, true, false, true, false),//5 (false, false, false, false, true, false, true, true, true),//6 (false, true, false, false, false, true, false, true, true),//7 (false, true, false, false, true, true, true, false, false),//8 (false, false, false, false, false, true, true, false, false)//9 //1 //2 //3 //4 //5 //6 //7 //8 //9 ); ![]() ![]() А вот матрица расстояний mRasstKm:array[1..n,1..n] of integer = ( //1 //2 //3 //4 //5 //6 //7 //8 //9 ( 0, 65, 102, 0, 0 , 0, 0, 0, 0), //1 ( 65, 0, 54, 0, 0, 0, 67, 91, 0), //2 ( 102, 54, 0, 31, 55, 0, 0, 0, 0), //3 ( 0, 0, 31, 0, 62, 0, 0, 0, 0), //4 ( 0, 0, 55, 62, 0, 56, 0, 68, 0), //5 ( 0, 0, 0, 0, 56, 0, 135, 52, 21), //6 ( 0 , 70, 0, 0, 0, 135, 0, 104, 118), //7 ( 0, 30, 0, 0, 37, 52, 104, 0, 0), //8 ( 0, 0, 0, 0, 0, 21, 118, 0, 0) //9 ); И ещё хотелось бы узнать про функцию город точнее про 1: Result:='Нарочь'; 2: Result:='Вилейка'; 3: Result:='Сморгонь'; для чего Result, это какое-то зарезерв-ое слово???или как ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,, И еще ,что такое итнрате т.е for I := 1 to 9 do // Iterate, как понимать это слово??? Заранее СПАСИБО!!! Последний раз редактировалось Андрос; 29.04.2009 в 23:50. |
![]() |
![]() |
#35 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Где было 40 а теперь 200 выделено жирным
Код:
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
#36 |
Пользователь
Регистрация: 19.04.2009
Сообщений: 45
|
![]()
Дело в том (я решаю по 1у алгоритму), расстояния я поменял, те матрица теперь у меня такая---(расстояний)
mRasstKm:array[1..n,1..n] of integer = ( //1 //2 //3 //4 //5 //6 //7 //8 //9 ( 0, 65, 102, 0, 0 , 0, 0, 0, 0), //1 ( 65, 0, 54, 0, 0, 0, 67, 91, 0), //2 ( 102, 54, 0, 31, 55, 0, 0, 0, 0), //3 ( 0, 0, 31, 0, 62, 0, 0, 0, 0), //4 ( 0, 0, 55, 62, 0, 56, 0, 68, 0), //5 ( 0, 0, 0, 0, 56, 0, 135, 52, 21), //6 ( 0 , 70, 0, 0, 0, 135, 0, 104, 118), //7 ( 0, 30, 0, 0, 37, 52, 104, 0, 0), //8 ( 0, 0, 0, 0, 0, 21, 118, 0, 0) //9 ); В файле я выложил расстояние между всеми пунктами и смотрел по нему.В моём варианте не надо 200??? |
![]() |
![]() |
#37 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Проверь пути 8-5 и 2-7. Почему то у меня не сходится.
Попробуй Нарисовать граф и написать эти км.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
#38 |
Пользователь
Регистрация: 19.04.2009
Сообщений: 45
|
![]()
Слушай, тут так получается у меня выводит то расстояние, которое я ввел в матрице.Ничего не понимаю , попробую скинуть мой юнит 1.пас,
посмотри,плиз, я понял одно---ты скорее всего прав, тока я что-то не допетрил... и такой вопрос--можно-ли если абольше б то выводило не так воложин<=молодечно=37, а так 37=воложин<=молодечно Последний раз редактировалось Андрос; 30.04.2009 в 00:22. |
![]() |
![]() |
#39 | |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]() Цитата:
Например пусть матрица будет такой //протяженность в км между городами, весы графа mRasstKm:array[1..n,1..n] of integer = ( //1 //2 //3 //4 //5 //6 //7 //8 //9 ( 0, 65, 102, 0, 0 , 0, 0, 0, 0), //1 ( 65, 0, 54, 0, 0, 0, 70, 91, 0), //2 ( 102, 54, 0, 31, 55, 0, 0, 0, 0), //3 ( 0, 0, 31, 0, 62, 0, 0, 0, 0), //4 ( 0, 0, 55, 62, 0, 56, 0, 68, 0), //5 ( 0, 0, 0, 0, 56, 0, 135, 52, 21), //6 ( 0 , 70, 0, 0, 0, 135, 0, 104, 118), //7 ( 0, 91, 0, 0, 68, 52, 104, 0, 0), //8 ( 0, 0, 0, 0, 0, 21, 118, 0, 0) //9 ); Вот исправленная матрица, где ошибка жирным Для вывода килом впереди сделай так LPutKm.Caption:=inttostr(mRasstKm[first,Second])+'='+Gorod(second)+Napravlenie+Gor od(first)+';'+LPutKm.Caption; ------------------------------/////////////////// Если останется время, попробуй реализовать выделение путей на рисунке. Как примерно это может выглядеть посмотри на прилагаемом рисунке. Сейчас опишу как это реализовать в твоей программе. Для начала в создании формы form1.create; вначале пропиши Код:
Код:
Введи глобальные переменные Код:
Код:
Код:
Код:
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
Последний раз редактировалось ArtInt; 30.04.2009 в 19:18. |
|
![]() |
![]() |
#40 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
![]()
Координаты точек вычислял по нажатию на рисунок
Код:
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритм Флойда. Поиск Кратчайшего пути. | Shady | Помощь студентам | 5 | 06.10.2014 18:29 |
Поиск пути в лабиринте - Пролог | yulia | Помощь студентам | 15 | 21.08.2010 00:14 |
Поиск кратчайшего пути в графе методом полного перебора в глубину. Метод ветвей и границ | Олинька | Помощь студентам | 1 | 24.12.2008 16:22 |
1) Поиск кратчайшего пути в графе методом полного перебора в ширину(очередь) | Serega123 | Помощь студентам | 3 | 30.10.2008 22:26 |