0 / 0 / 0
Регистрация: 04.03.2015
Сообщений: 2
1

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

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

добрый день , составьте пожалуйста программу , которая в прямоугольном лабиринте ищет кратчайший путь из заданной точки до выхода
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2015, 23:11
Ответы с готовыми решениями:

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

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

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

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

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

Решение

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

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
Модератор
8942 / 4503 / 3082
Регистрация: 17.08.2012
Сообщений: 14,372
28.05.2015, 06:43 3
Иной подход. Алгоритм Ли. В лабиринте найти путь из точки А в точку Б с помощью маршрутного алгоритма
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2015, 06:43
Помогаю со студенческими работами здесь

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

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

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

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

Кратчайший путь
Всем привет, есть лабиринт(массив 1- проход, 0 - стена) Есть написанная не мной функция, которая...

Кратчайший путь в графе.
Такая задача: Дан ориентированный взвешенный ациклический граф. Требуется найти в нем кратчайший...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru