IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> прохождение лабиринта с помощью рекурсии, бинарная матрица
Positiv
сообщение 22.03.2007 13:58
Сообщение #1


Гость






Доброго времени суток !!


Народ , помогите пожалуйста , нужно сделать программу :
дана двоичная матрица из 0 и 1 , в рандомной позиции появлятся человечек , которому нужно выйти в правый нижний угол , идти он может только по тем цифрам , на котрой сначала появился (то есть если появился на 1 то только по еденицам). Если выхода нет то нужно вывести на экран что нет выхода . матрица задается рандомно.
Программа должна быть сделана при помощи рекурсии .



Заранее спасибо.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
St@senk@
сообщение 22.03.2007 21:02
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской
Реальное имя: Максим

Репутация: -  1  +


Ну смотри.
псевдокод
функция шаг(х,у) булен
начало
отметим, что в этой точке мы были.
если х=(длина лабиринта) и у=(ширина лабиринта), то результат = Правда, а если нет, то
если на севере свободно, то результат = шаг(х,у-1), если нет, то
если на западе свободно, то результат = шаг(х+1,у), если нет, то
если на юге свободно, то результат = шаг(х,у+1), если нет, то
если на востоке свободно, то результат = шаг(х-1,у), если нет, то
результат = ложь
конец
свободно = такая же цифра и мы там не были
если результат работы да, то тогда выход есть. А как поиск пути найти, я думаю ты догадаешься

P.S. в алгоритме не уверен.

Сообщение отредактировано: St@senk@ - 23.03.2007 11:32


--------------------
Три пути ведут к знанию: путь размышления - это путь самый благородный, путь подражания - это путь самый легкий и путь опыта - это путь самый горький.
Конфуций
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 23.03.2007 9:27
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Цитата(St@senk@ @ 22.03.2007 21:02) *
отметим, что в этой точке мы были.
если х=0 или у=0 или х=(длина лабиринта) или у=(ширина лабиринта), то результат = Правда, а если нет, то
...
P.S. в алгоритме не уверен.
Направление рассуждения абсолютно верное, но не надо отмечать был ты в той или иной точке или не был. Нужно смотреть совпадение координат с первоначальной точкой обхода, когда вышел к границе в самом начале. Более того, нужно учесть, что таких совпадений может быть несколько!
И внимательно читаем условие: "человечек , которому нужно выйти в правый нижний угол "

ЗЫ: Просьба к автору темы - поподробней опишите как человечек может ходить?

ДА! Совсем забыл... у человечика должно быть "направление движения" и его все время должно тянуть в какую-то сторону (или по часовой, или против). Т.е. использовать абсолютные понятия север, восток, юг и запад нельзя.

Сообщение отредактировано: hiv - 23.03.2007 9:35


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Positiv   прохождение лабиринта с помощью рекурсии   22.03.2007 13:58
hiv   Народ , помогите пожалуйста , нужно сделать програ...   22.03.2007 14:19
positiv   мне надо сама процедура поиска пути , хелп   22.03.2007 20:06
St@senk@   Ну смотри. псевдокод функция шаг(х,у) булен начало...   22.03.2007 21:02
hiv   отметим, что в этой точке мы были. если х=0 или у=...   23.03.2007 9:27
Алена   FAQ -> Переборные алгоритмы (чуть-чуть подкорре...   23.03.2007 2:06
St@senk@   ну тогда, алгоритм, который проходит через все дос...   23.03.2007 12:16
Positiv   человек может ходить только по горизонтали или по ...   23.03.2007 13:28
St@senk@   ну тогда мой последний алгоритм должен работать...   23.03.2007 13:57
hiv   ну тогда мой последний алгоритм должен работать......   23.03.2007 18:11
Positiv   а где в этом алгоритме рекурсия ?   23.03.2007 18:41
St@senk@   Hiv, нет, твой алгоритм отличается от моего :) и в...   23.03.2007 20:05
Positiv   объясните плз подробнее , не совсем понятно , по а...   24.03.2007 10:12
Lapp   positv, чем тебя не устроила ссылка Алены? Там все...   24.03.2007 10:40
Positiv   'Lapp' . прога по ссылке алены вообще не...   24.03.2007 22:30
Lapp   'Lapp' . прога по ссылке алены вообще н...   25.03.2007 10:09
Гость   когда запускаешь программу алены , так понимаю над...   25.03.2007 17:28
St@senk@   Чтобы Ввы мне поверили, то вот реализация моего ал...   24.03.2007 10:57
St@senk@   Там нужно сначала ввести матрицу, а потом координа...   25.03.2007 17:29
Positiv   St@senk@ . надо что бы с рекурсией было , а я не ...   25.03.2007 17:39
St@senk@   :) Positiv А она там уже есть :) res:=res o...   25.03.2007 17:57
Гость   'St@senk@' . точняк , че то я туплю дико п...   25.03.2007 18:16


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 6:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"