Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Классы для чисел большой точности Доброго времени суток! Необходимо написать библиотеку классов для работы с числами большой точности. Необходимо использовать минимум 2 класса. Числа посоветовали хранить в массиве символов. Помгите определиться со структурой! Не могу решить что хранить в базовом классе, а что в производном. Например, в базовом классе хранить кол-во чисел, а в производном сами числа (в виде строк). ... https://www.cyberforum.ru/ cpp-beginners/ thread79768.html Лаба по сортировку.Срочно! C++
Помогите сделать лабу: Дан целый массив максимальной размерности 20*20. Провести сортировку по возрастанию отрицательных чисел в нечетных строках. Ввод исходного массива организовать из файла, при вводе учесть возможность ввода массива меньшей размерности. Результаты работы программы вывести на экран и в файл. Как ввести массив и тп я знаю.Меня интересует только как "Провести сортировку ...
C++ Вычислить другую сумму. Помогите пожалуйста решить задачку... На языке C++ http://img7.imageshost.ru/imgs/091225/8d2f18376d/1f769.jpg https://www.cyberforum.ru/ cpp-beginners/ thread79730.html C++ Отформатировать текст по n символов в строке https://www.cyberforum.ru/ cpp-beginners/ thread79721.html
Отформатировать текст по n символов в строке (встасить равномерно между словами пробелы, чтобы длина строк была равна n).
C++ Вычислить сумму.
Помогите пожалуйста решить задачку... На языке C++ http://img7.imageshost.ru/imgs/091225/b7af95a38e/4888a.jpg
C++ Строки https://www.cyberforum.ru/ cpp-beginners/ thread79709.html
Здравствуйте.Возник следующий вопрос.Если имеется набор символов в виде массива s.Как составить строку St из этих символов?
C++ wchart_t много есть? В типе данных wchart_t wchart_t variable = L'я'; Размер переменной будет 4 байта, но насколько я знаю для UTF-8 требуется всего 2 байта. Есть ли какие-то экономные версии типов? Конечно это не много, но суммарно потом это все будет попусту кушать в два раза больше чем надо. https://www.cyberforum.ru/ cpp-beginners/ thread79702.html недоработана программа с палиндромами C++
Здравствуйте, у меня такое задание: Найти делители всех палиндромов меньше 10000.. Я написал ее, но там повторяются цифра 1... Помогите доработать программу пожалуйста. Вот код: #include "stdafx.h" #include <iostream> using namespace std; int isPalindrom(long a) { int c,n=0; while(a>0)
C++ Перегрузка Виртуальность https://www.cyberforum.ru/ cpp-beginners/ thread79697.html
Чем отличается перегрузка от виртуальности?
C++ поменять порядок цифр... https://www.cyberforum.ru/ cpp-beginners/ thread79681.html
Дано натуральное n. Поменять порядок цифр числа n на обратный.
C++ Поясните разницу
Добрый день уважаемые товарищи программисты. Читаю книгу по С++ в надежде изучить его на начальных этапах и нашёл пункт, где описываются операторы инкрименирования. Из этого пункта я узнал, что бывают постинкрементные и прединкрементные операторы. int x =10; x++; ++x;
C++ Найти в каждой из трёх квадратных матриц максимальный элемент главной диагонали Помогите решить задачу: Даны три квадратные матрицы разных размеров. Найти в каждой из них максимальный элемент главной диагонали.(просят оформить в виде функций, но хотя бы без них помогите) А размеры какие задавать? https://www.cyberforum.ru/ cpp-beginners/ thread79660.html
0 / 0 / 0
Регистрация: 22.12.2009
Сообщений: 11
25.12.2009, 18:36  [ТС] 0

Реализовать программу, осуществляющую поиск выхода из лабиринта методом поиска с возвратом. - C++ - Ответ 441767

25.12.2009, 18:36. Показов 4562. Ответов 4
Метки (Все метки)

Ответ

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
const max_graf = 100;(максимальное число комнат в лабиринте}
type list =^elem;
         elem = record
                            num : integer;
                            next : list;
                      end;
var
Graf: array [1. . rnax_graf] of elem;
ref: list;
       n, i, a : integer;
       goal, go_on : boolean; {признаки достижения цели и необходимости продолжения}
      beg_num,end_num : integer;
      beg_st, end_st, elem_st : list; { начало, конец и элемент стека }
. . .
Procedure CreateGraf(n:integer);
{чтение исходных данных из текстового файла и формирование графа}
var
        sosed, sosed1 : list;
begin
        for i:=l to n do
          begin
                     new(sosed);
                     graf[i].next := sosed;
                    repeat
                              Readln(inf,a) ;
                              sosed^.num := a;
                              if а<>0 then
                              begin
                                         new(sosed1);
                                         sosed^.next := sosed1;
                                         sosed := sosed1
                              end
                    until a=0
          end
end;
 
  Формирование маршрута ведется с использованием стека. Процедуры Add и Del предназначены соответственно для добавления и удаления элементов стека.
 
Procedure Add (num: integer; var beg_st : list );
{ добавление элемента к стеку }
var
          elem_st : list;
begin
          new(elem_st); { выделили память под следующий элемент стека}
          elem_st^.next:=beg_st; {присоединили новый элемент к стеку }
                 elem_st^.num:=num; {занесли информацию)
                 beg_st:=elem_st {установили указатель на новое начало стека}
end;
 
Procedure Del (var begin_st : list ) ;
{ удалить элемент из стека }
var
        elem_st : list;
begin
        elem_st:=beg_st;
        beg_st:=beg_st^.next; { переносим указатель начала (вершины) стека на второй элемент}
        Dispose(elem_st) { освобождаем память, уничтожив первый элемент}
end;
 
  Основное действие алгоритма — это обработка очередной вершины графа, в результате чего мы либо добавляем к маршруту новую вершину, либо возвращаемся в предыдущую. Порядок просмотра соседей определяется порядком следования полей-ссылок в перечне вершин-соседей, который соответствует одной записи в текстовом файле.
 
Procedure Way (num_begin, num_end : integer); { номера вершин начала и конца пути }
var
      num : integer; { номер текущей вершины }
      flag : boolean; { признак необходимости продолжения пути }
begin
      Graf [num_begin] .num : = 1; { начальный этап }
      Add (num_begin, beg_st) ; {поместили начало пути в. стек }
      flag := true; {нужно продолжать построение пути }
      while flag and (not goal) do { строим очередной фронт }
      begin
             num := beg_st^.num ;
             { берем значение вершины стека }
             ref := graf [num].next;
          go_on := false; {признак того, что путь увеличился}
             repeat
                     a: =ref^ .num;
                     if а<>0 then
                             begin
                                        {обработка очередного соседа}
                                        if Graf[a]. num=0 {пометить вершину следующим фронтом}
                                        then begin
                                                      Graf [a].num := 1;
                                                      Add(a, beg_st) ;
                                                    go_on := true; {путь увеличился на шаг}
                                        end
 
                               else
                                       ref := ref^.next { переходим к следующему соседу }
                             end;
            until (a=0) or (go_on);
                 if Graf [num_end].num<>0 then goal :=true { дошли до цели. }
                  else
                    if not go_on then
                        begin
                             del (beg_st) ;
                             if beg_st=end_st then flag:=false
                                { стек пуст, задача неразрешима }
                        end
      end
end;
 
  Теперь программу поиска маршрута можно записать так (структура графа считывается из текстового файла):
 
program BackTracking;
. . .
begin
        for i:=1 to Max_Graf do Graf [i].num :=0;
        assign (inf, 'graf.txt');
        { в файле приведен пример, разобранный в тексте (рис.3)}
        reset (inf);
        readln (inf,n); { число вершин графа }
        CreateGraf (n) ;
        close (inf) ;
        new (elem_st) ; { инициализация стека }
        beg_st:=elem_st; { стек пока пуст,}
        end_st:=elem_st; { призак этого: beg_st = end_st}
        goal := false;
        Writeln;
        Writeln('Введите номер начальной и конечной вершины'};
        Readln (beg_num, end_num) ;
        Way (beg_num, end_num) ;
        if goal then
            { построение и печать маршрута }
      . . .
end.
как это на C++?

Вернуться к обсуждению:
Реализовать программу, осуществляющую поиск выхода из лабиринта методом поиска с возвратом. C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2009, 18:36
Готовые ответы и решения:

Реализовать программу, осуществляющую поиск выхода из лабиринта методом поиска с возвратом.
Реализовать программу, осуществляющую поиск выхода из лабиринта методом поиска с возвратом.

Какими методами лучше реализовать генерацию и поиск выхода из лабиринта?
Нужно сделать генерацию рандомнго лабиринта, и поиск выхода с него на С++. Подскажите пожалуйста...

Программа поиска выхода из лабиринта
Программа не заходит в цикл(pyt) для поиска пути в направлениях,при запуске пишет no, а если...

Поиск выхода из лабиринта
Здравствуйте! Изучаю C#, застрял на одном моменте в задании. Суть такова: нужно найти выход из...

4
25.12.2009, 18:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2009, 18:36
Помогаю со студенческими работами здесь

Поиск выхода из лабиринта
Необходимо реализовать поиск выхода из лабиринта вот допустим лабиринт,но тут он выводит только...

Поиск выхода из лабиринта
Доброго времени суток! Помогите написать процедуру использующую стек для отыскания прохода по...

Поиск выхода из лабиринта
Здравствуйте! Изучаю C#, застрял на одном моменте в задании. Суть такова: нужно найти выход из...

Поиск выхода из лабиринта
Такой вопрос. почему у меня не находит выход из лабиринта? предположительно ошибка в функции Solve...

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