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

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

Войти
Регистрация
Восстановить пароль
 
SilentM
0 / 0 / 0
Регистрация: 20.04.2009
Сообщений: 21
#1

Поиск ближайших точек - C++

27.05.2009, 23:32. Просмотров 732. Ответов 0
Метки нет (Все метки)

Здравствуйте! Есть задача, язык си:
1.Фиксируем несколько точек (А,Б,С.Д и т.д. их может быть сколько угодно), их координаты вводим с клавиатуры
2.Около них имеется множество других точек, чьи координаты мы также задаем с клавиатуры.
3.Надо найти из этого "множества других точек" ближайшую к каждой из пункта 1, а также вывести это минимальное расстояние и координаты этой точки.
Ну т.е. в ответе мы должны иметь типа :
"
ближайшая к А точка Б1 с координатами (2,3), расстояние=4
ближайшая к Б точка Б2 с координатами (3,7), расстояние=2
ближайшая к С точка Б3 с координатами (1,7), расстояние=3
ближайшая к Д точка Б4 с координатами (3,7), расстояние=1.73
..."
и т.д. для каждой точки.


Есть код, который работает так же, но только для 1 точки. Т.е в пункте 1. мы имеем не (А,Б,С,Д..) а только А
Т.е. фактически мне нужно вставить в этот код условие для множества точек.
Не знаю как сделать, помогите пожалуйста!

Код
#include <iostream>
#include <math.h>

using namespace std;

int main()
{
int k,n,m;
float r,p;

cout<< "zadaite kolichestvo sravnivaemyh tochek (vmeste s A): ";
cin>> k;

float **B;
B = new float *[k];
for (int i = 0; i < k; i ++)
B[i] = new float [2];
B[0][0]=4, B[0][1]=5;

for (n=1; n<k; n++)
{
cout<<"vvedite koordinaty"<< n<<" tochki:\n";
cout<<"x"<<n<<"= ";
cin>>B[n][0];
cout<<"y"<<n<<"= ";
cin>>B[n][1];
}

m=1;
r=sqrt((B[0][0]-B[1][0])*(B[0][0]-B[1][0])+(B[0][1]-B[1][1])*(B[0][1]-B[1][1]));

for (n=2; n<k; n++)
{
p=sqrt((B[0][0]-B[n][0])*(B[0][0]-B[n][0])+(B[0][1]-B[n][1])*(B[0][1]-B[n][1]));
if (p<r)
{m=n, r=p;}
}
cout<<"tochka B"<<m<<" raspolozhena na minimalnom rasstoyanii r="<<r<<"\n";

return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2009, 23:32     Поиск ближайших точек
Посмотрите здесь:

Функция для поиска ближайших простых чисел C++
C++ Поиск точек на плоскости
C++ Поиск трех ближайших точек к данной
C++ Нахождение ближайших точек методом декомпозиции - не понятен алгоритм
C++ Поиск двух ближайших друг к другу точек
Найти номера двух ближайших по значению элементов из введенного массива C++
Ряд Лорана. Поиск изолированных особых точек аналитических функций C++
C++ Поиск координат центра окружности описанной около точек
Поиск квадратов из точек C++
Поиск невидимых точек C++
C++ Поиск пиковых точек в двумерном массиве
Найти номера двух ближайших элементов из этого массива C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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