Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2013, 19:18   #1
Niken
 
Регистрация: 08.03.2013
Сообщений: 6
По умолчанию Поиск пути в массиве

Здравствуйте. В программе надо указать координаты в ручную, а тут происходит ввод автоматически. Как можно это сделать?
Вот код (C#)
Вложения
Тип файла: rar поиск пути в массиве.rar (29.3 Кб, 9 просмотров)
Niken вне форума Ответить с цитированием
Старый 09.03.2013, 16:38   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,886
По умолчанию

Код:
Console.WriteLine('Введите x1');
int x1 = Console.ReadLine();
Console.WriteLine('Введите y1');
int y1 = Console.ReadLine();
Console.WriteLine('Введите х2');
int x2 = Console.ReadLine();
Console.WriteLine('Введите y2');
int y2 = Console.ReadLine();
FindWave(x1, y1, x2, y2);
Книги садитесь читать.
phomm вне форума Ответить с цитированием
Старый 09.03.2013, 21:32   #3
Радик29
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 90
По умолчанию

Вот мой код для вашего случая
Цитата:
Console.WriteLine("Введите координату x1:");
int x1 = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите координату y1:");
int y1 = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите координату х2:");
int x2 = Int32.Parse(Console.ReadLine());
Console.WriteLine("Введите координату y2:");
int y2 = Int32.Parse(Console.ReadLine());
ob1.FindWave(x1, y1, x2, y2);
Радик29 вне форума Ответить с цитированием
Старый 09.03.2013, 21:37   #4
Радик29
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 90
По умолчанию

Niken, надо читать книжки, как сказано выше.
Радик29 вне форума Ответить с цитированием
Старый 09.03.2013, 21:55   #5
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,886
По умолчанию

Да извиняюсь.. намешал в шарп не то ) не проверял конечно же код, и как следовало ошибся, как в паскале сориентировался - там автоматом преобразуется из строки в число при Readline операции , ну и кавычки не те. Спасибо за поправки.
phomm вне форума Ответить с цитированием
Старый 10.03.2013, 10:14   #6
Niken
 
Регистрация: 08.03.2013
Сообщений: 6
По умолчанию

Спасибо Вам большое!
Препод сказал, что там надо найти еще оптимальный путь от И до П, и вывести его.
А как это сделать, не подскажете?
Niken вне форума Ответить с цитированием
Старый 10.03.2013, 12:07   #7
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,886
По умолчанию

Он и так оптимальный, по волновому алгоритму. Чтобы его вывести, надо ещё перебрать в обратном направлении с конца нумерации. Вы этого, конечно же, не сделаете, ибо код не Ваш, поэтому гуглите дальше, курите код который найдёте, экспериментируйте с ним. Вариаций именно этого кода волнового поиска пути я уже штук 5 видел в сети, и уже работал с ним на этом форуме раза 3, тупо лень ещё разжевывать, ищите по моим постам.
phomm вне форума Ответить с цитированием
Старый 11.03.2013, 15:54   #8
Niken
 
Регистрация: 08.03.2013
Сообщений: 6
По умолчанию

Я знаю, что это и так оптимальный путь. Надо же показать его как-то в отдельной вкладке.
Niken вне форума Ответить с цитированием
Старый 14.03.2013, 20:52   #9
Радик29
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 90
По умолчанию

Посмотри вот тут:
http://developersonthe.net/ru/posts/post_id/4
Радик29 вне форума Ответить с цитированием
Старый 14.03.2013, 22:01   #10
Niken
 
Регистрация: 08.03.2013
Сообщений: 6
По умолчанию

вот этот код как-то надо на C# перевести:
Код:

	void push(Point p, int n){

		if(fillmap[p.getY()][p.getX()]<=n) return; // Если новый путь не коpоче, то он нам не нужен

		fillmap[p.getY()][p.getX()]=n; // Иначе запоминаем новую длину пути

		buf.add(p); // Запоминаем точку

	}

        /* Сдесь беpется первая точка из buf, если она есть*/

        Point pop(){

        	if(buf.isEmpty()) return null;

                return (Point)buf.remove(0);

	}



        Point[] find(Point start, Point end){

        	int tx=0, ty=0, n = 0, t=0;

                Point p;

                // Вначале fillmap заполняется max значением

                for(int i=0; i<fillmap.length;i++)

                	Arrays.fill(fillmap[i], Integer.MAX_VALUE);

                push(start, 0); // Путь в начальную точку =0, логично ?

                while((p = pop())!=null){ // Цикл, пока есть точки в буфеpе

                	if(p.equals(end)){

                        	System.out.print("Hайден путь длины ");

                                System.out.println(n);

                        }

			// n=длина пути до любой соседней клетки

			n=fillmap[p.getY()][p.getX()]+labyrinth[p.getY()][p.getX()];
Niken вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск пути Alexandr555 Общие вопросы C/C++ 5 29.01.2013 20:00
поиск пути Nikita1111 Visual C++ 1 09.02.2012 00:44
Нахождение оптимального пути в двумерном массиве R.I.P. 666 Помощь студентам 1 07.11.2011 10:51
нахождение мин пути в двум массиве Erafiil Паскаль, Turbo Pascal, PascalABC.NET 2 26.12.2010 16:21
поиск пути NiCola999 Общие вопросы C/C++ 19 16.11.2009 09:25