0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 21
1

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

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

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

P.S. тема названа, не очень то точно, но других названий в голову не приходило...
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2011, 14:43
Ответы с готовыми решениями:

Найти расстояние от начала координат до каждой точки и расстояние между точками
задача на С++ На плоскости заданы точки своими координатами. Найти расстояние от начала координат...

Вычислить сумму координат и найти расстояние от точки до начала координат
Даны координаты точки в пространстве (x,y,z). Описать их с помощью записи. Составить программу...

Найти среднее отклонение (расстояние) точек от центра координат
Найти среднее отклонение (расстояние) точек от центра координат

Подпрограммы. Для точки на плоскости найти расстояние от точки до начала координат
Для точки на плоскости с заданными координатами (x,y) найти расстояние l от точки до начала...

9
Эксперт С++
4725 / 2546 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
28.01.2011, 14:49 2
Оч сложная задача. Наверное все можно осуществить даже без массивов, еще при считывании данных.
0
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 21
28.01.2011, 15:01  [ТС] 3
возможно... просто задача из темы про массивы и циклы...
не представляю как её решить, поэтому и спросил...
0
Эксперт С++
4725 / 2546 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
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
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
Эксперт С++
4725 / 2546 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
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
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 21
28.01.2011, 18:08  [ТС] 7
о, точно!
только у меня компилятор на pow ругается... говорит:
error C2668: pow: неоднозначный вызов перегруженной функции
0
Эксперт С++
4725 / 2546 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
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
0 / 0 / 0
Регистрация: 28.01.2011
Сообщений: 21
28.01.2011, 18:37  [ТС] 9
Спасибо большое! так заработало!!! а из-за чего ошибка была тогда?
в моем том коде работал pow...
0
Эксперт С++
4725 / 2546 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
28.01.2011, 18:52 10
Crashman, некоторые компиляторы требуют, что бы параметры функции pow были не целыми, а типа double или float.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2011, 18:52
Помогаю со студенческими работами здесь

Ввести координаты точки М и найти ее расстояние от начала координат (радиус - вектор от точки О (0,0)).
Ввести координаты точки М и найти ее расстояние от начала координат (радиус - вектор от точки О...

Расстояние от точки касания шаров до центра тяжести системы
Два одинаковых шара радиусами R=4,0 см и r=2,0 см, изготовленные из одного и того же материала,...

Как узнать расстояние от центра окружности до любой точки?
Subj.

Массивы: определение координат точки, наиболее приближенной к началу координат
На плоскости 100 точек заданы своими координатами Х, Y. Составить программу для определения...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru