Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.06.2017
Сообщений: 12

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте... Помогите с задачкой пожалуйста.
найти кратчайший путь между точками M и N зная что между точками лежит препятствие в виде отрезка AB. Считать, что координаты точек А,B,M,N на плоскости заданы.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.06.2017, 21:36
Ответы с готовыми решениями:

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

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

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

4
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
28.06.2017, 09:01
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
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.06.2017, 10:55
Лучший ответ Сообщение было отмечено 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
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
28.06.2017, 11:00
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
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
28.06.2017, 11:03
Да я не спорю, просто уточнил, если что.

Добавлено через 41 секунду
Я до конца не понял и условие
Цитата Сообщение от Romanian Посмотреть сообщение
Считать, что координаты точек А,B,M,N на плоскости заданы.
Добавлено через 30 секунд
Кем заданы, где и как заданы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.06.2017, 11:03
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru