![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() ![]() |
![]() |
HelpAusHeaven |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
Подскажите, где почитать или подскажите как осуществляется нахождения кратчайшего пути без использования графов, чистой рекурсией??
-------------------- Рассылка: "Решение Вами Предложенных Задач На Языке PASCAL. Алгоритмы на PASCAL."
Подписка по e-mail: comp.soft.prog.pascal123-sub@subscribe.ru |
virt |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
ты скажи ,у тебя данные как хранятся?
-------------------- |
HelpAusHeaven |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
в общем хранить их можно где угодно и как угодно... ну думаю, что хранить буду в матрице 10x10, где "0" - проход, "1" - стена, "2" - точка к которой надо найти кратчайший путь...
ну а искать его буду от 1х1 координаты... -------------------- Рассылка: "Решение Вами Предложенных Задач На Языке PASCAL. Алгоритмы на PASCAL."
Подписка по e-mail: comp.soft.prog.pascal123-sub@subscribe.ru |
virt |
![]()
Сообщение
#4
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код program recursion; const maxn=10; var a,b:array[1..maxn,1..maxn]of integer; i1,j1:integer; i,j,n:integer; cou:integer; procedure init; begin readln(n); for i:=1 to n do for j:=1 to n do read(a[i,j]); end; procedure solve(i,j:integer); begin if (i<1) or (i>n) or (j<1) or (j>n) or (a[i,j]=1) then exit; if b[i,j]>cou then b[i,j]:=cou; a[i,j]:=1; inc(cou); solve(i+1,j); solve(i-1,j); solve(i,j+1); solve(i,j-1); dec(cou); end; procedure out; begin writeln(b[i1,j1]); end; begin init; cou:=0; for i:=1 to n do for j:=1 to n do b[i,j]:=maxint; for i:=1 to n do for j:=1 to n do if a[i,j]=2 then begin i1:=i; j1:=j; end; solve(1,1); out; end. Сообщение отредактировано: AlaRic - -------------------- |
virt |
![]()
Сообщение
#5
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
извиняюсь ,
процедура solve должна быть такой : Код procedure solve(i,j:integer); begin if (i<1) or (i>n) or (j<1) or (j>n) or (a[i,j]=1) then exit; if b[i,j]>cou then b[i,j]:=cou; a[i,j]:=1; inc(cou); solve(i+1,j); solve(i-1,j); solve(i,j+1); solve(i,j-1); dec(cou); a[i,j]:=0;{!!!!!!!!!!!!!!} end; Сообщение отредактировано: virt - -------------------- |
AlaRic |
![]()
Сообщение
#6
|
... ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: ![]() ![]() ![]() |
virt теги не забывай!
|
HelpAusHeaven |
![]()
Сообщение
#7
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
virt
Спасибо большое!!! -------------------- Рассылка: "Решение Вами Предложенных Задач На Языке PASCAL. Алгоритмы на PASCAL."
Подписка по e-mail: comp.soft.prog.pascal123-sub@subscribe.ru |
HelpAusHeaven |
![]()
Сообщение
#8
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
virt
Кстати, а как он работает? ![]() Я заполняю матрицу, где: 0 - проход 1 - стена 2 - конечный пункт прибытия ![]() И получаю какую-то цифру 1... и матрицу b, заполненную нулями... Путь к конечной точке имеется, причем даже не один!:) -------------------- Рассылка: "Решение Вами Предложенных Задач На Языке PASCAL. Алгоритмы на PASCAL."
Подписка по e-mail: comp.soft.prog.pascal123-sub@subscribe.ru |
virt |
![]()
Сообщение
#9
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
по идее по b находится путь (или пути) ,и она должна быть ненулевой.???
а цифра(число) это длина пути. З.Ы. пришли плз. свою матрицу А на которой у тебя все нули (на PM) -------------------- |
virt |
![]()
Сообщение
#10
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
AlaRic
извини ,конечно ,но я хотел изменения в коде выделить. -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 25.01.2021 8:31 |