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

Кратчайший путь

27.06.2017, 21:36. Показов 2819. Ответов 4
Метки нет (Все метки)

Здравствуйте... Помогите с задачкой пожалуйста.
найти кратчайший путь между точками M и N зная что между точками лежит препятствие в виде отрезка AB. Считать, что координаты точек А,B,M,N на плоскости заданы.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2017, 21:36
Ответы с готовыми решениями:

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

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

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

Найти кратчайший маршрут, и указать последовательности торговых точек. Графы
Условие: Программа должна найти длину кратчайшего маршрута, но и указать последовательность...

4
5017 / 2605 / 2331
Регистрация: 10.12.2014
Сообщений: 9,925
28.06.2017, 09:01 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type tPoint=record x,y:real;end;
function readP(n:string):tPoint;
var p:tPoint;begin Write('Введите координаты точки ',n,': ');ReadLn(p.x,p.y);readP:=p;end;
function d(a,b,c:tPoint):real;
begin d:=a.x*b.y-a.x*c.y-a.y*b.x+a.y*c.x+b.x*c.y-b.y*c.x;end;
function l(a,b:tPoint):real;begin l:=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));end;
function s(v:real):integer;begin if v<0 then s:=-1 else if v>0 then s:=1 else s:=0;end;
function x(a,b:real):real;begin if a<b then x:=a else x:=b;end;
var m,n,a,b:tPoint;
begin
  m:=readP('m');n:=readP('n');a:=readP('a');b:=readP('b');
  Write('Минимальное расстояние от a до b равно ');
  if(d(m,n,a)=0)and(d(m,n,b)=0)or(s(d(m,n,a))=s(d(m,n,b)))then WriteLn(l(m,n))
  else WriteLn(x(l(a,m)+l(a,n),l(b,m)+l(b,n)));
end.
1
Почетный модератор
64270 / 47569 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
28.06.2017, 10:55 3
Лучший ответ Сообщение было отмечено Romanian как решение

Решение

Если
Цитата Сообщение от Romanian Посмотреть сообщение
координаты точек А,B,M,N на плоскости заданы.
то так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//растояние между точками
function Rasst(x1,y1,x2,y2:real):real;
begin
Rasst:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
var mx,my,nx,ny,ax,ay,bx,by,s:real;
begin
//пусть координаты корректно заданы, например
mx:=100;
my:=100;
nx:=200;
ny:=300;
ax:=200;
ay:=50;
bx:=200;
by:=300;
if Rasst(mx,my,ax,ay)+Rasst(nx,ny,ax,ay)<Rasst(mx,my,bx,by)+Rasst(nx,ny,bx,by)
then  s:=Rasst(mx,my,ax,ay)+Rasst(nx,ny,ax,ay)
else  s:=Rasst(mx,my,bx,by)+Rasst(nx,ny,bx,by);
write('Кратчайшее расстояние=',s:0:2);
end.
Добавлено через 3 минуты
У меня отрезок-препятствие задан именно как препятствие, отрезки MN и AB пересекаются.
1
5017 / 2605 / 2331
Регистрация: 10.12.2014
Сообщений: 9,925
28.06.2017, 11:00 4
Puporev, ну у меня тот же результат выдаёт!
Только я исходил из предпосылок, что отрезки могут находиться где угодно ;–)
И проверял на таких данных:
0 0 4 2 1 0.5 2 1
0 0 4 2 0 2 0 3
0 0 4 2 1 2 1 3
0 0 4 2 1 2 3 0
0 0 4 2 0 2 4 -1
0 0 4 2 1 0 2 -1
1
Почетный модератор
64270 / 47569 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
28.06.2017, 11:03 5
Да я не спорю, просто уточнил, если что.

Добавлено через 41 секунду
Я до конца не понял и условие
Цитата Сообщение от Romanian Посмотреть сообщение
Считать, что координаты точек А,B,M,N на плоскости заданы.
Добавлено через 30 секунд
Кем заданы, где и как заданы?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2017, 11:03
Помогаю со студенческими работами здесь

Работа с графом.Найти кратчайший маршрут между двумя вершинами.
Между некоторыми деревнями края Васюки ходят автобусы. Поскольку пассажиропотоки здесь не очень...

Найти кратчайший маршрут, начинающийся в 1-м городе и проходящий через все остальные города
Имеется n городов. Некоторые из них соединены дорогами известной длины. Вся система дорог задана...

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

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


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

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

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