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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 128, средняя оценка - 4.91
Рус777
17 / 17 / 1
Регистрация: 25.01.2009
Сообщений: 63
#1

Определить периметр правильного n-угольника, описанного около окружности радиуса r - C++

03.10.2009, 12:21. Просмотров 17197. Ответов 13
Метки нет (Все метки)

Определить периметр правильного n-угольника, описанного около окружности радиуса r
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2009, 12:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить периметр правильного n-угольника, описанного около окружности радиуса r (C++):

Вычислить длины вписанного и описанного около треугольника круга - C++
1)даны стороны треугольника а,в,с.Вычислить длины вписанного и описанного около этого треугольника круга. 2)Цена подписки на газету...

Вычислить длину стороны правильного 48-угольника - C++
Сторона правильного вписанного в окружность многоугольника с удвоенным числом ссторон выражается через сторону исходного многоугольника An...

Определить взаимное расположение точки с координатами (х0,y0) и окружности радиуса R с центром в точке (х1,у1) - C++
Определить взаимное расположение точки с координатами (х0,y0) и окружности радиуса R с центром в точке (х1,у1) Решите пожалуйста задачку...

Определить окружность минимального радиуса, такую, чтобы она включала в себя все заданные окружности - C++
На плоскости задано N окружностей (2<= N<=10). Надо определить окружность минимального радиуса, такую, чтобы она включала в себя все...

Найти площадь вписанного в окружность радиуса R неправильного 10-угольника - C++
помогите написть задачу на С++ Найти площадь вписанного в окружность радиуса R неправильного 10-угольника, если его стороны – это хорды,...

Найти площадь вписанного в окружность радиуса R неправильного 10-угольника - C++
помогите написть задачу на С++ Найти площадь вписанного в окружность радиуса R неправильного 10-угольника, если его стороны – это хорды,...

13
R0mm
Псевдо программист
192 / 113 / 15
Регистрация: 19.09.2009
Сообщений: 303
03.10.2009, 12:27 #2
и?
0
AltPeople
10 / 10 / 1
Регистрация: 25.09.2008
Сообщений: 73
03.10.2009, 13:01 #3
тебе конечную формулу только, или с объяснением всего алгоритма?
конечная формула периметра:
P=2*r*n*sin(2*pi/n)/sin(pi*(n-2)/2*n)

вроде так, если ничего не напутал
сейчас допечатаю объяснение
1
valeriikozlov
Эксперт С++
4675 / 2501 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.10.2009, 13:12 #4
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
#include <iostream.h>
#include <Windows.h>
#include <iomanip>
#include <math.h>
 
#define M_PI       3.14159265358979323846
int n;
double r, p;
int main()
{
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
 vvod:
        cout<<"Ââåäèòå êîëè÷åñòâî ñòîðîГ* Г¬Г*îãîóãîëüГ*ГЁГЄГ*\n";
        cin>>n;
        if(n<3)
        {
                cout<<"×èñëî ñòîðîГ* Г¬Г*îãîóãîëüГ*ГЁГЄГ* äîëæГ*Г® áûòü áîëåå 2\n";
                goto vvod;
        } 
        cout<<"Ââåäèòå Г°Г*äèóñ ГўГЇГЁГ±Г*Г*Г*îé îêðóæГ*îñòè\n";
        cin>>r;
        p=2*r*n*(tan(M_PI/n));
        cout<<"Ïåðèìåòð ГЇГ°Г*âèëüГ*îãî "<<n<<"-óãîëüГ*ГЁГЄГ* Г°Г*ГўГҐГ*: "<<p<<endl;
        system("pause");
        return 0;
}
AltPeople,
Думаю что в формуле что-то напутал. При вводе n=5 и к=2 получается отрицательное число.
1
AltPeople
10 / 10 / 1
Регистрация: 25.09.2008
Сообщений: 73
03.10.2009, 13:21 #5
звыняйте, ошибся
исправил
P=2*r*n*sin(pi/n)*sin(pi*(n-2)/2*n)
после доработки
P=2*r*n*sin(pi/n)*cos(pi/n)
теперь вроде все ок
1
valeriikozlov
Эксперт С++
4675 / 2501 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.10.2009, 13:31 #6
AltPeople,
И с этой формулой при вводе n=5 и r=2 получается отрицательное число
после доработки получается положительное число, но с кодом написаным мною результат не совпадает.
1
AltPeople
10 / 10 / 1
Регистрация: 25.09.2008
Сообщений: 73
03.10.2009, 13:43 #7
отрицательное не может быть т.к. (pi/5) лежит в первой четверти, где синусы и косинусы больше 0.
ладно сейчас сам проверю

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <math.h>
 
 
int main()
{
    double r,p;
    int n;
    cin>>r>>n;
    p=2*r*n*sin(3.14/n)*cos(3.14/n);
    cout<<"p = "<<p<<endl;
    return 0;
}
n=5, r =2, p = 9.50859
1
valeriikozlov
Эксперт С++
4675 / 2501 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.10.2009, 13:45 #8
AltPeople,
Я же писал до Вашей доработки, и писал что результат отрицательный, но после увидев что Вы добавили:
Цитата Сообщение от AltPeople Посмотреть сообщение
после доработки
P=2*r*n*sin(pi/n)*cos(pi/n)
проверил и тоже добавил:
"после доработки получается положительное число, но с кодом написаным мною результат не совпадает."
1
AltPeople
10 / 10 / 1
Регистрация: 25.09.2008
Сообщений: 73
03.10.2009, 14:10 #9
а у Вас какая конечная формула получается?

Добавлено через 12 минут
таки p=2*r*n*tan(3.14/n); и будет правильный вариант

зы пятница удалась, голова с утра плохо работает)))))
1
valeriikozlov
Эксперт С++
4675 / 2501 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.10.2009, 15:03 #10
Нашел формулу по поиску в инете: сторона правильного многоугольника a=2*r*tan(p/n), где r - радиус вписанной окружности в многоугольник, n - количество сторон многоугольника
1
AltPeople
10 / 10 / 1
Регистрация: 25.09.2008
Сообщений: 73
03.10.2009, 15:33 #11
я просто сам выводил формулу)))
0
gather
1 / 1 / 0
Регистрация: 03.10.2009
Сообщений: 8
04.10.2009, 00:05 #12
для проверки используйте значения:
количество углов - 4;
радиус - sqrt(2);
периметр - тогда должен быть - 4;
0
valeriikozlov
Эксперт С++
4675 / 2501 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.10.2009, 09:09 #13
gather,
Вообще-то периметр в Вашем примере равен 11,3137.
Для квадрата (а в Вашем примере именно он приводится), периметр равен: радиус вписанной окружности умножить на 8.
0
gather
1 / 1 / 0
Регистрация: 03.10.2009
Сообщений: 8
04.10.2009, 09:19 #14
Цитата Сообщение от valeriikozlov Посмотреть сообщение
gather,
Вообще-то периметр в Вашем примере равен 11,3137.
Для квадрата (а в Вашем примере именно он приводится), периметр равен: радиус вписанной окружности умножить на 8.
да, признаю свою ошибку и прошу не бить ногами
я перепутал вписаную и описаную окружность
0
04.10.2009, 09:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2009, 09:19
Привет! Вот еще темы с ответами:

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

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

Вычислить периметр n-угольника с заданным количеством вершин - C++
Задача:Вычислить периметр n-угольника за заданым количеством вершин. Вот сам код: #include &lt;iostream&gt; using namespace std; #include...

Составить программу, содержащую функцию, которая рассчитывает площадь и периметр правильного шестиугольника - C++
Помогите! не успевать решить задание(while, do...while) Составить программу, содержащую функцию, которая рассчитывает площадь S и...


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

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

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