Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 04.03.2015
Сообщений: 2

Прямоугольный лабиринт: кратчайший путь из заданной точки до выхода

12.03.2015, 23:11. Показов 3399. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
добрый день , составьте пожалуйста программу , которая в прямоугольном лабиринте ищет кратчайший путь из заданной точки до выхода
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.03.2015, 23:11
Ответы с готовыми решениями:

В прямоугольном лабиринте найти кратчайший путь из заданной точки до выхода
Составьте программу , которая в прямоугольном лабиринте ищет кратчайший путь из заданной точки до выхода

Закрасить кратчайший путь выхода из лабиринта
дан массив 10*10, элементы которого лэйблы белого цвета, при нажатии курсором на белый лэйбл он становиться синим (стеной). после...

Дан проходной лабиринт с одним входом и выходом. Найти кратчайший путь для прохождения этого лабиринта
Дан проходной лабиринт с одним входом и выходом. Найти кратчайший путь для прохождения этого лабиринта.

2
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
14.03.2015, 11:50
Лучший ответ Сообщение было отмечено Владислав Чер как решение

Решение

(С) Артем Рогачко

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
{Поиск кратчайшего пути между двумя точками графа}
program min_road;
const
  N = 7; {количество вершин графа}
var
  map: array[1..N, 1..N] of integer; {Карта: map[i,j] не 0,
                                       если точки i и j соединены}
  road: array[1..N] of integer; {Маршрут - номера точек карты}
  incl: array[1..N] of boolean; {incl[i]=TRUE, если точка}
                                    {с номером i включена в road}
  len: integer; {Длина последнего найденного маршрута}
  c_len: integer; {Длина текущего маршрута}
  start, finish: integer; {Начальная и конечная точки}
  i, j: integer;
procedure step(s, f, p: integer);
var
  c: integer; {Номер точки,в которую делаем очередной шаг}
begin
  if s = f then
  begin
    len := c_len; {сохраним длину найденного маршрута}
    write('Путь: ');
    for i := 1 to p - 1 do write(road[i], ' ');
    writeln(' Длина: ', len);
  end
  else
          {выбираем очередную точку}
    for c := 1 to N do {Проверяем все вершины}
      if (map[s, c] <> 0) and (not incl[c]) and ((len = 0) or (c_len + map[s, c] < len))
                    {Точка соединена с текущейне включена в маршрут}
      then begin
        road[p] := c; {Добавим вершину в путь}
        incl[c] := TRUE; {Пометим вершину}
                                       {как включенную}
        c_len := c_len + map[s, c];
        step(c, f, p + 1);
        incl[c] := FALSE;
        road[p] := 0;
        c_len := c_len - map[s, c];
      end;
end; {Конец процедуры step}
{Основная программа}
begin
     {Инициализация массивов}
  for i := 1 to N do road[i] := 0;
  for i := 1 to N do incl[i] := FALSE;
  for i := 1 to N do for j := 1 to N do map[i, j] := 0;
     {Ввод значений элементов карты}
  map[1, 2] := 1; map[2, 1] := 1;
  map[1, 3] := 1; map[3, 1] := 1;
  map[1, 4] := 1; map[4, 1] := 1;
  map[3, 4] := 1; map[4, 3] := 1;
  map[3, 7] := 1; map[7, 3] := 1;
  map[4, 6] := 1; map[6, 4] := 1;
  map[5, 6] := 1; map[6, 5] := 1;
  map[5, 7] := 1; map[7, 5] := 1;
  map[6, 7] := 1; map[7, 6] := 1;
  write('Введите через пробел номера начальной и конечной точек -> ');
  readln(start, finish);
  road[1] := start; {Внесем точку в маршрут}
  incl[start] := TRUE; {Пометим ее как включенную}
  len := 0;
  c_len := 0;
  step(start, finish, 2); {Ищем вторую точку}
  writeln('Для завершения нажмите <Enter>');
  readln;
end.
0
Модератор
10422 / 5710 / 3401
Регистрация: 17.08.2012
Сообщений: 17,366
28.05.2015, 06:43
Иной подход. Алгоритм Ли. В лабиринте найти путь из точки А в точку Б с помощью маршрутного алгоритма
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.05.2015, 06:43
Помогаю со студенческими работами здесь

Вычислить кратчайший путь в графе от точки 1 до точки 9
Здравствуйте , необходимо вычислить кратчайший путь в графе от точки 1 до точки 9...ну само собой стоимость пути на каждом шаге известна,...

Найти кратчайший путь от одной точки параллелепипеда до другой
Задача выглядит так: На поверхности прямоугольного параллелепипеда сидит муха и нанесена капля варенья. Определите наименьшее...

Программа, способная отвечать на запросы и возвращать кратчайший путь до заданной вершины
Всем доброго времени суток! помогите пожалуйста реализовать код на Haskell &quot;программа, способная отвечать на запросы и возвращать...

Кратчайший путь
Всем привет. Наткнулся на задачку - написать алгоритм нахождения кратчайшего пути и вывести шаги до конечной точки UP, DOWN, LEFT, RIGHT....

Кратчайший путь
Здравствуйте... Помогите с задачкой пожалуйста. найти кратчайший путь между точками M и N зная что между точками лежит препятствие в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru