Движение по лабиринту: Определить и вывести на экран кратчайшее расстояние10.03.2015, 19:27. Показов 3105. Ответов 20
Метки нет (Все метки)
Задача:
Задано поле МхN клеток, в которых расположены нули и единицы.Его называют лабиринтом, а единицы стенами.Необходимо определить и вывести на экран кратчайшее расстояние из клетки (x, y) в клетку (Х1, У1). (Программу описать ввиде списков). Прошу помощи очень нужно,полазил по похожим темам,толковой и четкой информации не нашел.Тему со списками пропустил,теперь мучаюсь.
0
|
|
| 10.03.2015, 19:27 | |
|
Ответы с готовыми решениями:
20
Движение по лабиринту: Определить и вывести на экран кратчайшее расстояние Вывести кратчайшее расстояние Определить кратчайшее расстояние от исходной точки до конечной |
|
Модератор
|
|
| 10.03.2015, 19:58 | |
|
В общих чертах - волновой "алгоритм Ли" (именно так в Wikipedia) - разновидность поиска в ширину. А очередь организовать в виде списка.
0
|
|
| 10.03.2015, 20:10 [ТС] | |
|
Мне бы текст программы,а то я пропустил эти темы и теперь не знаю что и как делать
0
|
|
|
Модератор
|
||||||||||||
| 11.03.2015, 00:52 | ||||||||||||
Сообщение было отмечено sanyok zadrot как решение
Решение
Ограничения:
1. Компилятор FPC, может быть PascalABC.NET - у ТС нет указания на этот счёт. 2. Условие вводится из файла определённого формата. 3. Безошибочность чтения из файла не контролируется. 4. Может быть, вывод пути нужно было тоже через списки (стек), но у меня уже нет сил и желания. 5. Алгоритм Ли не совсем чисто реализован (в Wikipedia он через цикл repeat-until, а у меня через while), запись номера волны в матрицу D через очередь работает правильно, но можно было бы и напрямую, кажется, в нескольких местах дублируются проверки. 6. Вывод пути организован так: построчно выводятся координаты клеток от начальной до конечной. 7. Координаты клеток считаются от 0, а не от 1. 8. Строки для удобства отладки (особенно динамических структур) можно убрать
m n - размеры лабиринта лабиринт начальная клетка (отсчёт от 0) конечная клетка (отсчёт от 0) Пример:
1
|
||||||||||||
| 11.03.2015, 17:15 [ТС] | |
|
Огромнейшее спасибо,очень выручил,завтра покажу преподу,что он скажет.
0
|
|
|
Модератор
|
|
| 11.03.2015, 21:06 | |
|
Надеюсь, что ты сможешь рассказать об алгоритме Ли. А также, при необходимости, изменить форматы и способы ввода, вывода.
2
|
|
| 14.03.2015, 21:31 [ТС] | |
|
Я заболел,так и не показал преподу прогу,не могу понять как забиваються данные и в какой файл? Напиши инструкцию пожалуйста если не трудно
0
|
|
|
Модератор
|
|||
| 14.03.2015, 22:19 | |||
|
В блокноте (или другом текстовом редакторе - не в Word) создаётся текстовый (plain text) файл с именем 'Maze01.txt' следующего формата:
- в первой строке указаны два числа - размеры лабиринта m и n, где m - количество строк, n - количество столбцов. - далее идут m строк с описанием лабиринта, где 0 - проход, 1 - стена - далее идет строка с координатами стартовой клетки (сначала номер строки, потом номер столбца), причём отсчёт производится от нуля. - далее едёт строка с координатами последней клетки (куда надо прийти). Так, например, в файле следующего содержания
Добавлено через 7 минут Этот файл должен находится в той же папке, что и exeшник. Добавлено через 3 минуты Странно... Я думал, что перед "спасибой" ты проверил работоспособность кода...
1
|
|||
| 14.03.2015, 22:45 [ТС] | |
|
я проверял,тот же трабл был и вот решился написать
0
|
|
|
Модератор
|
|
| 14.03.2015, 23:16 | |
|
Какой "трабл"?
0
|
|
| 14.03.2015, 23:18 [ТС] | |
|
с вводом,не хотело читать из файла
0
|
|
|
Модератор
|
|
| 14.03.2015, 23:32 | |
|
А сейчас?
У меня исходник и файл 'Maze01.txt' находятся в одной папке. При запуске fp в этой же папке появляется exe. Приложу свой файл. А кроме того, что "не хотело", выдавало код ошибки. Что за ошибка - файл не найден или ошибка при чтении?
1
|
|
| 14.03.2015, 23:52 [ТС] | |
|
Тот код что ты кидал всеровно ошибку,компилируеться нормально при запуске "exit code 2" вот скрины (ссылка на сторонний ресурс удалена, контент загружен на форум, фотографии текста заменены текстом)
Code Runtime error 2 at $004023E8 $004023E8 MAZELOADFROMFILE, line 235 ... $004027E8 main, line 260 of ... $0040A3A1 А вот из твоего архива прога скомпилировалась, запустилась и выдало это (ссылка на сторонний ресурс удалена, контент загружен на форум, фотография текста заменена текстом) Code 20. (4, 1) 21. (3, 1) 22. (2, 1) 23. (1, 1) 24. (1, 2) 25. (1, 3) 26. (1, 4) 27. (1, 5) 28. (2, 5) 29. (3, 5) 30. (4, 5) 31. (4, 6) 32. (4, 7) 33. (4, 8) 34. (3, 8) 35. (2, 8) 36. (1, 8) 37. (1, 9) Heap dump by heaptrc unit 132 memory block allocated : 1776/1904 132 memory block freed : 1776/1904 0 unfreed memory blocks : 0 True heap size : 163840 (112 used in System startup) True free heap : 163728 не знаю правда что это означает
0
|
|
|
Модератор
|
|||||||
| 15.03.2015, 00:12 | |||||||
Добавлено через 1 минуту Ну тот, что последний рисунок - это путь из 37 шагов. Измени формат вывода так, чтобы выводил в одну строку. Добавлено через 17 минут
0
|
|||||||
| 15.03.2015, 00:18 [ТС] | |
|
Я закинул, твою прогу и текст.файл в отдельную папку, а эту папку в папку бин фри паскаля,открываю его запускаю через него,компилирует нормально,нажимаю ран,выбивает ексит код 2 и при нажатии альт+ф5 выдает те ошибки что скинул(но это именно с тем кодом что ты кидал выше) а тот последний скрин то уже с того втвоего архива,так же розархивировал в бин,в отдельную папку и также запускал,там снизу чет за память написано,на скрине снизу видно или это ничего страшногО?
Добавлено через 59 секунд А это выдает просто проходимый путь или найкратчяйший проходимый? Добавлено через 2 минуты Мне еще будет нужна твоя помощь,дай свои контакты мб в вк или скайп,мыло,что нибудь,это просто прога на курсовую,и мне еще нужно будет немножко эту прогу доработать а я в этом паскале воще не шарю,пол учебного года проболел,уже на с++ пришел,что то начал вдуплять
0
|
|
|
Модератор
|
||
| 15.03.2015, 00:21 | ||
|
Алгоритм Ли даёт кратчайший проходимый.
Эти надписи
1
|
||
| 15.03.2015, 00:32 [ТС] | |
|
ок ,я спать если чет будет не понятно отпишу
Добавлено через 10 секунд спасибо
0
|
|
|
Модератор
|
|
| 15.03.2015, 01:06 | |
|
У меня нет ни скайпа, ни fb, ни QIP, ни одноклассников - не было нужды. Мыло давать - нет смысла. Сейчас до понедельника у меня есть свободное время, а дальше - до конца месяца - уже может и не быть.
Тебе лучше разобраться, как оно работает. Алгоритм Ли описан в Wikipedia, динамические структуры - в учебниках всех языков (и Pascal и C++). Сколько я представляю, C и C++ это работа сплошь с указателями и указателями на указатели. Если бы ты искал описание алгоритма, то в Wikipedia в самом низу есть ссылка на готовый код алгоритма Ли на C++ и Pascal. Кстати, именно оттуда структура файла с лабиринтом. Кроме Wiki описание, визуализация, примеры есть во многих других местах. Вопросы можно задавать на форуме. А лучше преподавателю - он будет видеть работу. Болезнь - не повод для незнания, придётся навёрстывать. Кроме того, это твой курсовой.
1
|
|
| 15.03.2015, 16:21 [ТС] | |
|
Мне еще нужно твоя помощь в доработке этой проги по таким пунктам
менюшку сделать)а)что бы можна было вводить лабиринт и розмерность непосредственно в самой программе и ситывание с файла,сделать сто бы пользователь мог сам выбирать или с файла или сам вводить б)и так же результат выводить за выбором или на екран или в текстовий файл Помоги сделать менюшку,а то я воще беспонятия как на этом паскале сделать,выручи пожалуйста,доделай прогу,буду весьма блогадарен
0
|
|
|
Модератор
|
||||||
| 15.03.2015, 19:33 | ||||||
|
Попробуй самостоятельно. Напомню, что это твоя курсовая.
Приведу ссылки на образцы. 1. Ввод матрицы пример - пункт 4. 2. Запись в текстовый файл - добавь копию процедуры ShowPath, но вывод отправь в файл. Или попробуй сделать перенаправление вывода
Паскаль не сложнее других языков. Где-то даже проще. У кого-то в подписи видел справедливое замечание: "Опытный программист на С/С++ с лёгкостью исправляет ошибки, которые на Pascal даже не возникают". Достаточно непростую часть курсовика я за тебя уже сделал. Тебе остаётся написать (скопировать из примера и доработать) пользовательский интерфейс (организация меню), 15 строк процедуры ввода с клавиатуры, 15 строк скопировать перенаправление вывода в файл. Будут вопросы - помогу. Но делать за тебя не буду. Почему сделал алгоритм - было интересно и у меня уже год, как нет работ по программированию PLC, скучаю, чтобы не забыть.
1
|
||||||
| 15.03.2015, 19:33 | |
|
Помогаю со студенческими работами здесь
20
Определить кратчайшее расстояние от заданной точки до границы заданной фигуры Лабиринт: определить и вывести на экран самое короткое расстояние от входа к выходу Определить кратчайшее расстояние от заданной точки до границы заданной фигуры, считая, что точка находится вне кратчайшее расстояние до плоскости Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|