С Новым годом! Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 13.09.2018
Сообщений: 126
1

Расстояние между точкой и отрезком, с абсолютной или относительной погрешностью не превышающей 0.0001

02.11.2018, 12:32. Показов 1184. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задан отрезок S с концами в точках (x1, y1) i (x2, y2) i точка P с координатами (x, y). Нужно найти расстояние от точки P к отрезку S.
Входные данные
В единственной строке задано 6 целых положительных цифр: x, y, x1, y1, x2, y2.
выходные данные
Выведите расстояние с абсолютной или относительной погрешностью не превышающей 0,0001.
Ограничения
0≤x, y, x1, y1, x2, y2≤10000
Примеры
Входные данные
1 1 0 0 2 2
Исходные данные
0
Пробовал так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program name;
var
   x,y,x1,y1,x2,y2:longint;
   l,s1,s2,l1,l2,min:real;
begin
     read(x,y,x1,y1,x2,y2);
     s1:=(x1+x2)/2;
     s2:=(y1+y2)/2;
     l:=sqrt(sqr(x-s1)+sqr(y-s2));
     l1:=sqrt(sqr(x-x1)+sqr(y-y1));
     l2:=sqrt(sqr(x-x2)+sqr(y-y2));
     if l>l1 then min:=l1
     else min:=l;
     if min>l2 then
        min:=l2;
     writeln(min:0:0);
end.
Но ошибка на третьем тесте.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2018, 12:32
Ответы с готовыми решениями:

Вычисление приближенного значения функции, с абсолютной погрешностью, не превышающей 0,001.
Написать программу вычисления приближенного значения функции, с абсолютной погрешностью, не...

Связь между относительной погрешностью и числа значащих цифр
Значащая цифра. Число верных значащих цифр (узком и широком смысле). Связь между относительной...

Вычислить минимальное расстояние между точкой треугольника и точкой окружности
Помогите,нужно вычислить минимальное расстояние между точкой треугольника и точкой...

Найти расстояние между отрезком AB и прямой
помогите написать, знаю как это в теории сделать, но не знаю как на си... Найти расстояние между...

5
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
02.11.2018, 12:48 2
Посмотрите это, решение наверное не оптимальное, но идея верная.
Расстояние от точки до отрезка
0
1 / 1 / 0
Регистрация: 13.09.2018
Сообщений: 126
02.11.2018, 12:58  [ТС] 3
Я уже вводил код, но ошибка на втором тесте.
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
02.11.2018, 13:43 4
Можно еще так.
Найти расстояние от точки до каждого из концов отрезка и высоту, Взять минимальное из этих трех.
Но суть та же.

Добавлено через 19 минут
Я вот так написал, вроде все нормально считает.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var x,y,x1,y1,x2,y2:longint;
    a,b,c,s,h,d:real;
begin
readln(x,y,x1,y1,x2,y2);
//длины сторон треугольника
a:=sqrt(sqr(x-x1)+sqr(y-y1));
b:=sqrt((x-x2)+sqr(y-y2));
c:=sqrt((x1-x2)+sqr(y1-y2));
//площадь треугольника
s:=abs((x-x2)*(y1-y2)-(x1-x2)*(y-y2))/2;
//высота к основанию
h:=2*s/c;
//writeln('a=',a:0:2,' b=',b:0:2,' h=',h:0:2); - для проверки
if a<b then d:=a else d:=b;
if h<d then d:=h;
write(d:0:4)
end.
0
1 / 1 / 0
Регистрация: 13.09.2018
Сообщений: 126
02.11.2018, 14:37  [ТС] 5
Ошибка на 3-ем тесте.
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
02.11.2018, 16:06 6
Значит какой-то прикол во входных данных есть, думать нужно.

Добавлено через 2 минуты
Видимо совпадение точек 1 и 2, длина с=0, деление на 0.
Нужно проверять совпадение точек. Если да, то выводить 0.

Добавлено через 12 минут
Нет, не так. Если точки 1 и 2 совпадают, то расстояние равно любой от 3 до 1 или от 3 до 2.
Если 3 совпадает с 1 или 2, то 0.
0
02.11.2018, 16:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2018, 16:06
Помогаю со студенческими работами здесь

Найти угол между отрезком прямой, соединяющей начало координат с точкой A(x,y), и осью ОХ
Задача: Найти угол между отрезком прямой, соединяющей начало координат с точкой A(x,y), и осью ОХ...

Отсортировать координаты точек по углу между осью абсцис и отрезком соединяющим начало координат с точкой
Решить задачу, используя функции пользователя. Для продвижения по массиву использовать в программе...

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

Расстояние между фокусом параболы и точкой директрисы
Найти расстояние между фокусом параболы: x^2+4x-4y+24=0 и точкой ее директрисы, абсцисса которой...

Расстояние между точкой и прямой, построение базиса
Есть n-мерное пространство, необходимо построить базис. Берем среднюю точку - x* , находим...

Сложное движение. Нахождение относительной и абсолютной скоростей
Задача. Колечко K соединяет неподвижную проволочную полуокружность радиуса OC = r = 12 и...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru