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

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

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

массивы, плоскость, и расстояние от точки до центра координат - C++

28.01.2011, 14:43. Просмотров 1075. Ответов 9
Метки нет (Все метки)

Всем доброго времени суток! Помогите пожалуйста разобраться вот с такой вот задачей:
Имеется n точек на плоскости, заданные своими координатами. Определить номер точки, расстояние от которой до центра координат максимально.
Вот... вроде и ясно что нужно решать через массивы, но не могу придумать как это можно осуществить >_<.

P.S. тема названа, не очень то точно, но других названий в голову не приходило...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2011, 14:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос массивы, плоскость, и расстояние от точки до центра координат (C++):

Дано три точки . Определить расстояние от них до начала координат. Координаты ввести с клавиатуры - C++
Задача такая Дано три точки . Определить расстояние от них до начала координат. Координаты ввести с клавиатуры Вот мой код , но...

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

Вывести расстояние от заданной точки до точки пересечения диагоналей прямоугольников - C++
Прямоугольники заданы координатами их вершин. 1)Вывести расстояние от заданной точки до точки пересечения диагоналей. 2) Вывести...

Попадание точки в плоскость - C++
2.2 Попадание точки в плоскость Даны вещественные числа x и y. Определить принадлежит ли точка с координатами (x;y) заштрихованной...

Найти минимальное расстояние от точки до точки - C++
В последнем цикле, который должен находить минимальное расстояние от точки до точки и его индекс, какая-то ошибка. Немогу её увидеть....

Определить номер точки, через которую проходит окружность с центром в начале координат, внутрь которой попадают все оставшиеся точки. - C++
Имеется n точек на плоскости. Определить номер той, через которую проходит окружность с центром в начале координат, внутрь которой попадают...

9
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
28.01.2011, 14:49 #2
Оч сложная задача. Наверное все можно осуществить даже без массивов, еще при считывании данных.
0
Crashman
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 21
28.01.2011, 15:01  [ТС] #3
возможно... просто задача из темы про массивы и циклы...
не представляю как её решить, поэтому и спросил...
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
28.01.2011, 15:18 #4
Алгоритм такой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
double mах=-1., i_max;
for(int i=0; i<N; i++)
{
     //здесь считываем координаты об очередной точке
     // вычисляем расстояние от этой точки до координаты (0,0) rast=sqrt(x^2+y^2) 
    if(max==-1)
    {
        max=rast;
        i_max=i;
     }
    else
        if(max<rast)
        {
             max=rast;
             i_max=i;
        }
}
// здесь в max значение максимального расстояния, в i_max номер точки. (нумерация с 0).
1
Crashman
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 21
28.01.2011, 15:56  [ТС] #5
спасибо за алгоритм)
вот) я придумал как с массивами можно)
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
37
38
39
40
41
42
43
44
45
#include "stdafx.h"
#include <iostream>
#include <math.h>
 
int x[100],y[100];
int i,n;
double a,q,w,m,d,f;
using namespace std;
 
int main()
{
cout<<("Vvedite N");
cin>>n;
cout<<("Vvedite kordinati zentra x");
cin>>q;
cout<<("Vvedite kordinati zentra y");
cin>>w;
 
for (i=1; i<=n; i++)
{
cout<<"Vvedite element x=";
cin>>x[ i ];
cout<<"Vvedite element y=";
cin>>y[ i ];
 
}
m=0;
for (i=1; i<=n; i++)
{
a=sqrt(pow(x[ i ]-q,2)+pow(y[ i ]-w,2));
if (m<a)
{
m=a;
d=x[ i ];
f=y[ i ];
 
}
}
 
cout<<"Maksim ydaleniya tochka- ["<<d<<","<<f<<"]";
 
system("PAUSE");
return 0;
 
}
p.s теперь другая проблема T_T
Имеется n точек на плоскости. Определить номер той, через которую проходит окружность с центром в начале координат, внутрь которой попадают все оставшиеся точки.
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
28.01.2011, 16:19 #6
На пример так:
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
 
int x[100],y[100];
int i,n;
double a,q,w,m,d,f,num=0;
using namespace std;
 
int main()
{
cout<<("Vvedite N");
cin>>n;
m=0;
for (i=1; i<=n; i++)
{
    cin>>x[i]>>y[i];
a=sqrt(pow(x[ i ],2)+pow(y[ i ],2));
if (m<a)
{
m=a;
d=x[ i ];
f=y[ i ];
num=i; 
}
}
 
cout<<"Maksim ydaleniya tochka- ["<<d<<","<<f<<"]"<<"  "<<"Num: ="<<num<<endl;
 
system("PAUSE");
return 0;
 
}
1
Crashman
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 21
28.01.2011, 18:08  [ТС] #7
о, точно!
только у меня компилятор на pow ругается... говорит:
error C2668: pow: неоднозначный вызов перегруженной функции
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
28.01.2011, 18:21 #8
Crashman, pow и в Вашем коде есть. А так попробуйте:
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
 
int x[100],y[100];
int i,n;
double a,q,w,m,d,f,num=0;
using namespace std;
 
int main()
{
cout<<("Vvedite N");
cin>>n;
m=0;
for (i=1; i<=n; i++)
{
        cin>>x[i]>>y[i];
a=sqrt(pow((double)x[ i ],2.)+pow((double)y[ i ],2.));
if (m<a)
{
m=a;
d=x[ i ];
f=y[ i ];
num=i; 
}
}
 
cout<<"Maksim ydaleniya tochka- ["<<d<<","<<f<<"]"<<"  "<<"Num: ="<<num<<endl;
 
system("PAUSE");
return 0;
 
}
1
Crashman
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 21
28.01.2011, 18:37  [ТС] #9
Спасибо большое! так заработало!!! а из-за чего ошибка была тогда?
в моем том коде работал pow...
0
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
28.01.2011, 18:52 #10
Crashman, некоторые компиляторы требуют, что бы параметры функции pow были не целыми, а типа double или float.
1
28.01.2011, 18:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2011, 18:52
Привет! Вот еще темы с ответами:

Поиск координат центра окружности описанной около точек - C++
Здравствуйте, задача состоит в следующем, даны координаты n точек (x1;y1),(x2;y2)...(xn;yn) в виде массива, надо найти координаты центра и...

Найти точку, расстояние от которой до начала координат минимальное - C++
На плоскости задано N точек с координатами (xi,yi) . Найти точку, расстояние от которой до начала координат минимальное. Для задания...

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

расстояние от точки до функции С++ - C++
у меня было задание такое: Определить минимальное расстояние функции f(x)=15logx-x от точки А(Xa,Ya) на интервале x=Xmin:h:Xmax...мой код:...


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

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

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