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

Найти точку, лежащую на внутреннем радиусе окруносьти - C++

Восстановить пароль Регистрация
 
zidans
0 / 0 / 0
Регистрация: 30.10.2010
Сообщений: 45
03.12.2010, 13:49     Найти точку, лежащую на внутреннем радиусе окруносьти #1
Здравствуйте. Помогите ответить на дополнительный вопрос для защиты лабы.

По написанной программе надо найти точку, лежащую на внутреннем радиусе, т. е на самой внутренней окружности

Было задание :Составить программу по обработке одномерного массива согласно условию:

В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в порядке х1,у1,х2,у2,х3,у3 и т.д. Определить кольцо с центром в начале координат, которое содержит все точки.

Вот сама программа:

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 <iostream>
#include <cmath>
using namespace std;
 
int main()
{
        int n,i;
        double * arr, r, rMin, rMax;  // rMin-внутренний радиус, rMax - внешний
        cout<<"Vvedite kolvo tochek: ";
        cin>>n;
 
        arr = new double[n*2];
 
        // ввод
        for (i=0; i<n; ++i)
        {
                cout<<"x["<<i<<"]=";
                cin>>arr[2*i];
                cout<<"y["<<i<<"]=";
                cin>>arr[2*i+1];
        }
 
        // вычисляем расстояние от центра до первой точки
        r=sqrt(arr[0]*arr[0]+arr[1]*arr[1]);
        rMin=rMax=r;
 
        // вычисляем расстояние от центра до последующих точек
        // и находим макс. и мин. расстояния  - радиусы кольца
        for (i=0; i<n; ++i)
        {
                r=sqrt(arr[2*i]*arr[2*i]+arr[2*i+1]*arr[2*i+1]);
                if (r<rMin) rMin=r;
                if (r>rMax) rMax=r;
        }
 
        // вывод
        cout<<"Vse tochki lezhat v koltse s radiusami: ";
        cout<<"\nVnutrennij = "<<rMin;
        cout<<"\nVneshnij = "<<rMax;
 
        delete []arr;
        cout<<endl;
        system("pause");
        return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2010, 13:49     Найти точку, лежащую на внутреннем радиусе окруносьти
Посмотрите здесь:

Минимальное число точек в описанном радиусе C++
C++ Найти точку на окружности
C++ Найти точку D, симметричную точку A относительно стороны BC.
Найти площадь, лежащую в первой координатной четверти, прямоугольника, заданного вершинами. C++
C++ Напишите программу обхода двоичных деревьев во внутреннем порядке
C++ Вектор векторов с различным числом элементов в каждом внутреннем векторе
Найти точку на прямой C++
C++ В введенной строке заменить каждую запятую и точку на точку с запятой

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.12.2010, 15:57     Найти точку, лежащую на внутреннем радиусе окруносьти #2
Цитата Сообщение от zidans Посмотреть сообщение
По написанной программе надо найти точку, лежащую на внутреннем радиусе, т. е на самой внутренней окружности
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
46
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
        int n,i;
        double * arr, r, rMin, rMax, x, y;  // rMin-внутренний радиус, rMax - внешний
        cout<<"Vvedite kolvo tochek: ";
        cin>>n;
 
        arr = new double[n*2];
 
        // ввод
        for (i=0; i<n; ++i)
        {
                cout<<"x["<<i<<"]=";
                cin>>arr[2*i];
                cout<<"y["<<i<<"]=";
                cin>>arr[2*i+1];
        }
 
        // вычисляем расстояние от центра до первой точки
        r=sqrt(arr[0]*arr[0]+arr[1]*arr[1]);
        rMin=rMax=r; x=arr[0]; y=arr[0];
 
        // вычисляем расстояние от центра до последующих точек
        // и находим макс. и мин. расстояния  - радиусы кольца
        for (i=0; i<n; ++i)
        {
                r=sqrt(arr[2*i]*arr[2*i]+arr[2*i+1]*arr[2*i+1]);
                if (r<rMin){ rMin=r; x=arr[2*i]; y=arr[2*i+1];}
                if (r>rMax) rMax=r;
        }
 
        // вывод
        cout<<"Vse tochki lezhat v koltse s radiusami: ";
        cout<<"\nVnutrennij = "<<rMin;
        cout<<"\nVneshnij = "<<rMax;
        cout<<"\nTochka na vnutrennem radiuse: X="<<x<<", Y="<<y;
 
        delete []arr;
        cout<<endl;
        system("pause");
        return 0;
}
Лишнее из программы сами уберете.
Yandex
Объявления
03.12.2010, 15:57     Найти точку, лежащую на внутреннем радиусе окруносьти
Ответ Создать тему
Опции темы

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