Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
pesik
802 / 52 / 2
Регистрация: 01.12.2012
Сообщений: 224
#1

Найти кратчайший путь парохода - VB

01.12.2012, 21:09. Просмотров 840. Ответов 11
Метки нет (Все метки)

Здравствуйте, дорогие программисты и сисадмины. Мой преподаватель неплох в программировании на VB, но у него есть один минус - его слова забываются(да и сам я бестолочь). И вот спустя год отсутствия практики он выдает мне курсовой. Помогите пожалуйста написать код. Желательно с операторами попроще, так как это всего лишь для работа для колледжа. Задание во вложении. Заранее спасибо

Задание:
Пароход должен пройти из пункта М в пункт N, обойдя препятствие, стоящее на его пути между точками А и В. Найти кратчайший путь парохода, считая что точки M, N, A, B заданы на плоскости своими прямоугольными координатами (X, Y).
0
Миниатюры
Найти кратчайший путь парохода  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 21:09
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти кратчайший путь парохода (VB):

Найти кратчайший путь в графе
Здравствуйте. Мне необходима помощь в решении курсовой. Необходимо найти...

Определить кратчайший путь между 2-мя точками
Народ, помогите пожалуйста. Вручную написана схема того что должно...

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

Игра охотник-жертва: Жертва убегает от охотника, а охотник выбирает кратчайший путь до жертвы
Есть 2 точки: одна - охотник, другая - жертва. Жертва убегает от охотника, а...

Как полный путь преобразовать в путь для коммандной строки?
Типа: C:Мои документыМоя Папка в C:Моидок~1Мояпап~1

Найти кратчайший путь
ткните носом в маршрут, где будет 27(первый вариант ответа). сам не вижу......

11
Казанский
13891 / 5654 / 1441
Регистрация: 24.09.2011
Сообщений: 8,863
01.12.2012, 23:07 #2
Не забудьте проверить, пересекаются ли отрезки АВ и MN.
Интереснее всего случай, когда отрезки частично совпадают
0
gaw
6632 / 1499 / 169
Регистрация: 09.01.2010
Сообщений: 4,272
01.12.2012, 23:43 #3
Цитата Сообщение от Казанский Посмотреть сообщение
пересекаются ли отрезки АВ и MN
а почему они должны пересекаться или не
0
Catstail
Модератор
23540 / 11650 / 2036
Регистрация: 12.02.2012
Сообщений: 18,994
01.12.2012, 23:44 #4
А где координаты препятствия?
0
pesik
802 / 52 / 2
Регистрация: 01.12.2012
Сообщений: 224
01.12.2012, 23:45  [ТС] #5
Наш преподаватель так же отличается туманностью в условиях, все что есть в задании - есть в задании.
0
gaw
6632 / 1499 / 169
Регистрация: 09.01.2010
Сообщений: 4,272
01.12.2012, 23:45 #6
это если не пересекаются то MN ?
0
Казанский
13891 / 5654 / 1441
Регистрация: 24.09.2011
Сообщений: 8,863
02.12.2012, 00:02 #7
Ну да А если и точка А, и точка В лежат на отрезке MN, то любое число, превосходящее |MN|, например
|MN|*(1+1e-14)
0
gaw
6632 / 1499 / 169
Регистрация: 09.01.2010
Сообщений: 4,272
02.12.2012, 00:11 #8
если и точка А, и точка В лежат на отрезке MN --- это значит что препятствие на MN, а его надо обходить, тогда либо 5я точка () либо решения нет
почему то кажется , что надо вообще проверять все четыре пары , вернее три, что б выполнялись xM<xA<xB<xN
ну и соотв с у
0
pesik
802 / 52 / 2
Регистрация: 01.12.2012
Сообщений: 224
02.12.2012, 00:24  [ТС] #9
все точки будут задаваться на форме через текст боксы шагами скорее всего... а может быть и нет... в общем мне нужно узнать как выглядит код командной кнопки.

Добавлено через 7 минут
все расстояния то есть)... блин чего делать вообще не понять
0
Alex77755
10697 / 3272 / 543
Регистрация: 13.02.2009
Сообщений: 9,649
02.12.2012, 14:48 #10
Вы забыли рассмотреть вариант когда точки M,N находятся с одной стороны от препятствия.
Хотя это оговорено в условии: проверка на пересечение. Тогда, думаю, просто вычислить расстояние при прожождении через точку А и точку В и сравнить
0
pesik
802 / 52 / 2
Регистрация: 01.12.2012
Сообщений: 224
03.12.2012, 18:05  [ТС] #11
Покажите как выглядит код к этой программе

Добавлено через 2 часа 26 минут
Сделал таки, если кому то интересно вот код
Visual Basic
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
Private Sub Command1_Click()
Dim Ax As Integer
Dim Ay As Integer
Dim Bx As Integer
Dim By As Integer
Dim Mx As Integer
Dim My As Integer
Dim Nx As Integer
Dim Ny As Integer
Ax = Text1.Text
Ay = Text2.Text
Bx = Text3.Text
By = Text4.Text
Mx = Text5.Text
My = Text6.Text
Nx = Text7.Text
Ny = Text8.Text
NB = Abs((Bx - Nx) + (By - Ny)) ^ 0.5
BM = Abs((Mx - Bx) + (My - By)) ^ 0.5
NA = Abs((Ax - Nx) + (Ay - Ny)) ^ 0.5
AM = Abs((Mx - Ax) + (My - Ay)) ^ 0.5
NBM = Round(Abs(NB) + Abs(BM))
NAM = Round(Abs(NA) + Abs(AM))
If NBM > NAM Then
Text9.Text = "путь через NB,BM(" + Str(NBM) + " ) короче на" + Str(NBM - NAM) + "шаг(а,ов)"
Else:
Text9.Text = "путь через NA,AM(" + Str(NAM) + " ) короче на" + Str(NAM - NBM) + "шаг(а,ов)"
End If
End Sub
0
Alex77755
10697 / 3272 / 543
Регистрация: 13.02.2009
Сообщений: 9,649
03.12.2012, 18:40 #12
так, вроде, звучит теорема Пифагора:
Visual Basic
1
NB = ((Bx - Nx) ^ 2 + (By - Ny) ^ 2) ^ 0.5
0
03.12.2012, 18:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2012, 18:40
Привет! Вот еще темы с решениями:

Найти кратчайший путь
Всем привет, кто может, помогите: Дан двумерный массив, нужно найти...

Найти кратчайший путь в орграфе
Надо, например, найти кратчайший путь, на отрезках указана длина. Как решать...

Найти кратчайший путь шахматного короля
Здравствуйте, имеется задача: Есть шахматное поле NxM N, M ≤ 10^9 На...

Найти кратчайший путь из вершины u в вершину v
Уффф, к завтрашнему дню нужно сдать эти задачи, помогите пожалуйста кто чем...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru