Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
xpressforze
 Аватар для xpressforze
5 / 3 / 0
Регистрация: 25.12.2013
Сообщений: 55
#1

Найти из двух точек на плоскости ближайшую к заданной точке - C++

16.03.2016, 07:06. Просмотров 194. Ответов 8
Метки нет (Все метки)

Помогите с задачей. На плоскости XOY даны три точки A(x1, y1), B(x2, y2), C(x3, y3). Выяснить, какая из точек B и C расположена ближе к точке A.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2016, 07:06     Найти из двух точек на плоскости ближайшую к заданной точке
Посмотрите здесь:

C++ Найти максимальный по площади выпуклый четырехугольник, который можно организовать из точек на плоскости
Найти такую точку заданного на плоскости множества точек, сумма расстояний от которой до остальных минимальна C++
C++ Найти точку на плоскости, сумма расстояний от которой до остальных точек множества максимальна
На плоскости заданы своими целочисленными координатоми n точек. Найти все возможные группы... C++
C++ Найти координаты точек пересечения двух кругов
C++ Заданное множество точек на плоскости. Найти выпуклую оболочку этого множества
C++ Найти такую точку, что шар радиуса R с центром в этой точке содержит максимальное число точек зад
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilot
Модератор
Эксперт С++
1780 / 1155 / 223
Регистрация: 16.05.2013
Сообщений: 3,042
Записей в блоге: 5
Завершенные тесты: 1
16.03.2016, 07:31     Найти из двух точек на плоскости ближайшую к заданной точке #2
C++
1
2
3
4
5
6
7
8
9
10
11
int x1, y1;//Point A
int x2, y2;//Point B
int x3, y3;//Point C
...
float l12 = std::hypot(std::abs(x1 - x2), std::abs(y1 - y2));
float l13 = std::hypot(std::abs(x1 - x3), std::abs(y1 - y3));
 
if(l12 < l13)
   std::cout << "Точка В расположена ближе к точке А";
else
   std::cout << "Точка С расположена ближе к точке А";
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
3361 / 1683 / 448
Регистрация: 18.10.2014
Сообщений: 3,088
16.03.2016, 07:54     Найти из двух точек на плоскости ближайшую к заданной точке #3
Цитата Сообщение от Ilot Посмотреть сообщение
float l12 = std::hypot(std::abs(x1 - x2), std::abs(y1 - y2));
А зачем делать std::abs?
Ilot
Модератор
Эксперт С++
1780 / 1155 / 223
Регистрация: 16.05.2013
Сообщений: 3,042
Записей в блоге: 5
Завершенные тесты: 1
16.03.2016, 08:00     Найти из двух точек на плоскости ближайшую к заданной точке #4
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
А зачем делать std::abs?
Верно, не нужно.
xpressforze
 Аватар для xpressforze
5 / 3 / 0
Регистрация: 25.12.2013
Сообщений: 55
18.03.2016, 23:52  [ТС]     Найти из двух точек на плоскости ближайшую к заданной точке #5
Я все равно не понимаю совсем.
SpBerkut
Объявлятель переменных
 Аватар для SpBerkut
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
19.03.2016, 08:20     Найти из двух точек на плоскости ближайшую к заданной точке #6
Цитата Сообщение от xpressforze Посмотреть сообщение
Я все равно не понимаю совсем.
C++
1
2
3
4
5
6
7
8
9
10
11
int x1, y1;//Point A
int x2, y2;//Point B
int x3, y3;//Point C
...
float l12 = std::hypot(x1 - x2, y1 - y2); //  расстояние от А до В по теореме Пифагора
float l13 = std::hypot(x1 - x3, y1 - y3); //  расстояние от А до С по той же теореме
 
if(l12 < l13)
   std::cout << "Точка В расположена ближе к точке А";
else
   std::cout << "Точка С расположена ближе к точке А";
Байт
Эксперт C
 Аватар для Байт
15033 / 9435 / 1379
Регистрация: 24.12.2010
Сообщений: 17,448
19.03.2016, 10:50     Найти из двух точек на плоскости ближайшую к заданной точке #7
Цитата Сообщение от xpressforze Посмотреть сообщение
Я все равно не понимаю совсем
Теорему Пифагора знаешь?
xpressforze
 Аватар для xpressforze
5 / 3 / 0
Регистрация: 25.12.2013
Сообщений: 55
20.03.2016, 20:44  [ТС]     Найти из двух точек на плоскости ближайшую к заданной точке #8
Сделал в итоге так:
C++
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
30
31
32
33
34
35
36
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    double A[2];
    double B[2];
    double C[2];
    double AB, AC;
    setlocale(LC_ALL, "Russian");
    cout <<"Введите координату X точки A"<< endl;
    cin >> A[0];
    cout <<"Введите координату Y точки A"<< endl;
    cin >> A[1];
    cout <<"Введите координату X точки B"<< endl;
    cin >> B[0];
    cout <<"Введите координату Y точки B"<< endl;
    cin >>B[1];
    cout <<"Введите координату X точки C"<< endl;
    cin >> C[0];
    cout <<"Введите координату Y точки C"<< endl;
    cin >> C[1];
    AB=sqrt(pow(B[0]-A[0],2.0)+pow(B[1]-A[1],2.0));
    AC=sqrt(pow(C[0]-A[0],2.0)+pow(C[1]-A[1],2.0));
    if (AB>AC)
    {
        cout << "Точка C Находится ближе к точке A" << endl;
    }
    else
    {
        cout << "Точка B Находится ближе к точке A" << endl;
    }
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2016, 21:53     Найти из двух точек на плоскости ближайшую к заданной точке
Еще ссылки по теме:

Нахождение значения функции в заданной точке, найти ошибку в алгоритме C++
C++ Найти число точек, находящихся внутри круга радиусом r с центром в заданной точке
Сравнение двух точек на координатной плоскости C++
C++ Дано множество точек на плоскости. Необходимо найти 4 точки (с максимальными и минимальными значениями x и y)
В массивах вещественных чисел X и Y записаны координаты точек на плоскости. Найти длины отрезков C++

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

Или воспользуйтесь поиском по форуму:
SpBerkut
Объявлятель переменных
 Аватар для SpBerkut
908 / 234 / 113
Регистрация: 24.09.2011
Сообщений: 875
Завершенные тесты: 2
20.03.2016, 21:53     Найти из двух точек на плоскости ближайшую к заданной точке #9
Цитата Сообщение от xpressforze Посмотреть сообщение
C++
1
sqrt(pow(C[0]-A[0],2.0)+pow(C[1]-A[1],2.0));
Ходят слухи, что преподы любят использование стандартной функции hypot из math.h. Что-то вроде этого:
C++
1
hypot(C[0]-A[0], C[1]-A[1]);
Yandex
Объявления
20.03.2016, 21:53     Найти из двух точек на плоскости ближайшую к заданной точке
Ответ Создать тему
Опции темы

Текущее время: 11:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru