Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Определить, какая из двух точек расположена ближе к заданной точке - C++
На оси х о у заданы своими координатами три точки a, b, c. Определить, какая из точек b или c расположена ближе к точке a.

Определить, какая из двух точек расположена ближе к заданной точке - C++
Задача: На числовой оси расположены три точки: A, B, C. Определить, какая из двух последних точек (B или C) расположена ближе к A, и...

Найти число точек, находящихся внутри круга радиусом r с центром в заданной точке - C++
Нужно написать программу: Подсчитать число точек, находящихся внутри круга радиусом r с центром в точке с координатами (1, 1);...

В заданном множестве точек плоскости найти количество точек в каждой из четвертей - C++
В заданном множестве точек плоскости найти количество точек в каждой из четвертей. Знаете я не могу понять - а как задано это...

В заданном множестве точек плоскости найти количество точек в каждой из четвертей - C++
В заданном множестве точек плоскости найти количество точек в каждой из четвертей

Из множества точек на плоскости найти точки, образующие параллелограмм с наибольшим количеством точек внутри - C++
"Даны N точек на плоскости. Найти среди них точки являющиеся вершинами фигуры, содержащей максимальное число заданных точек. Фигура -...

8
Ilot
Модератор
Эксперт С++
1825 / 1183 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 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 << "Точка С расположена ближе к точке А";
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3976 / 2200 / 553
Регистрация: 18.10.2014
Сообщений: 3,814
16.03.2016, 07:54 #3
Цитата Сообщение от Ilot Посмотреть сообщение
float l12 = std::hypot(std::abs(x1 - x2), std::abs(y1 - y2));
А зачем делать std::abs?
1
Ilot
Модератор
Эксперт С++
1825 / 1183 / 232
Регистрация: 16.05.2013
Сообщений: 3,119
Записей в блоге: 5
Завершенные тесты: 1
16.03.2016, 08:00 #4
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
А зачем делать std::abs?
Верно, не нужно.
0
xpressforze
5 / 3 / 0
Регистрация: 25.12.2013
Сообщений: 56
18.03.2016, 23:52  [ТС] #5
Я все равно не понимаю совсем.
0
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 << "Точка С расположена ближе к точке А";
0
Байт
Диссидент
Эксперт C
16832 / 11097 / 1743
Регистрация: 24.12.2010
Сообщений: 21,801
19.03.2016, 10:50 #7
Цитата Сообщение от xpressforze Посмотреть сообщение
Я все равно не понимаю совсем
Теорему Пифагора знаешь?
0
xpressforze
5 / 3 / 0
Регистрация: 25.12.2013
Сообщений: 56
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;
    }
 
}
0
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]);
0
20.03.2016, 21:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2016, 21:53
Привет! Вот еще темы с ответами:

Среди заданных точек на плоскости найти ту, у которой расстояние суммы равно наибольшему от остальных точек - C++
Помогите вывести не цифру наибольшего значения, а все число. Задача: среди заданных точек на плоскости, найти ту у которой расстояние...

Сравнение двух точек на координатной плоскости - C++
С++ Никак не могу сделать , помогите , пожалуйста! Предметная область: «Точка в двумерном пространстве». Данные структуры: координаты...

Функция, которая вернет номера двух из трех заданных точек на плоскости, расстояние между которыми минимально - C++
Написать функцию Otr(x1,y1,x2,y2,х3,у3) вещественного типа, которая вернет номера двух из трех заданных точек на плоскости, расстояние...

Нахождение значения функции в заданной точке, найти ошибку в алгоритме - C++
С помощью численных методов надо найти значение функции в точке. Есть файл (у нас это database.txt) со значением функции в разных точках....


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

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

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