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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 5.00
kolesoo
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 5
#1

Площадь окружностей - C++

05.11.2009, 23:07. Просмотров 1889. Ответов 16
Метки нет (Все метки)

Задача: Рассматриваются н лучей, проведенных в плоскости из точки О. Углы между соседними лучами равны 2П/н. На лучах выбраны точки а1, а2 ... ан и из точек как из центров проведены окружности, проходящие через точку О. Считая данными расстояния а1о, а2о ... аНо вычислить площадь фигуры, образованной всеми окружностями.
Надо решить только для н<=4. Буду рад мыслям)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2009, 23:07     Площадь окружностей
Посмотрите здесь:

Найти площадь грани, площадь полной поверхности и объем куба C++
Площадь пересечения окружностей C++
Найти площадь треугольника,его высоту,радиусы вписанной и описанной окружностей C++
C++ Вычислить площадь пересечения двух окружностей
C++ Даны координаты центров n окружностей и их радиусы. Определить число пересекающихся окружностей
Имеется кольцо с известными радиусами внутреннего и внешнего кругов. Определить окружностей обоих кругов,атакже площадь кольца. C++
C++ Найти площадь треугольника и радиусы вписанной и описанной окружностей
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sheka
Босс
161 / 127 / 7
Регистрация: 03.06.2009
Сообщений: 751
05.11.2009, 23:38     Площадь окружностей #2
ща накатаем
sheka
Босс
161 / 127 / 7
Регистрация: 03.06.2009
Сообщений: 751
06.11.2009, 01:08     Площадь окружностей #3
Вот формулы для нахождения маленьких площадей s1и s2.Площадь окружностей
В программе находите все такие площади и отнимаете каждую из них два раза от общей площади, которая равна сумме площадей окружностей.
S=2*pi*(r1+r2+...rn)-2((s1+s2)+(s3+s4)+...(sn-1+sn));
sheka
Босс
161 / 127 / 7
Регистрация: 03.06.2009
Сообщений: 751
06.11.2009, 01:10     Площадь окружностей #4

Не по теме:

Извините, что, как говорят некоторые форумчане, "на туалетной бумажке" и не красивым почерком(каким умею)


если никто программу не напишет - может завтра напишу.
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
06.11.2009, 05:53     Площадь окружностей #5
ещё иллюстрации
если просто отнимать площади, то в каждой окружности будут отниматься уже отнятые
Миниатюры
Площадь окружностей  
Изображения
 
sheka
Босс
161 / 127 / 7
Регистрация: 03.06.2009
Сообщений: 751
06.11.2009, 12:47     Площадь окружностей #6
Да, для 2х я не рассматривал))), извините.
но для 4х все чики пики)
Для 5 и болеетакой расчет вообще не возможен, т.к. тама очень миллион разных вариантов.
kolesoo
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 5
06.11.2009, 12:54  [ТС]     Площадь окружностей #7
Для 2х и не надо, там все понятно) Программа нужна для числа окружностей от 1 до 4. Еще желательно использовать подпрограммы) .
sheka
Босс
161 / 127 / 7
Регистрация: 03.06.2009
Сообщений: 751
06.11.2009, 13:02     Площадь окружностей #8
ЩА!
тогда свитчем попробую) четыре варианта всего)

Добавлено через 45 секунд
только скажи сразу: Си или Си++ ?
kolesoo
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 5
06.11.2009, 18:37  [ТС]     Площадь окружностей #9
c++
еще пришла идея считать через площадь сложной фигуры. Как интеграл.
sheka
Босс
161 / 127 / 7
Регистрация: 03.06.2009
Сообщений: 751
07.11.2009, 01:12     Площадь окружностей #10
Вот решение. Только несколько но:
1. идея вышеприведеного решения правильна, если не учитывать ошибки "времени выполнения" площадь круга = 2ПR))), вместо минуса плюс итп., т.к. писал в полночь)))
2. Вроде программа работает правильно (считал по клеточкам), но лучше перепроверьте, т.к. ошибки "времени выполнения" не исключины) и Си я вообще не знаю
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 <cmath>
#include <iostream>
#include <conio.h>
using std::cout;     // подключишь cout
using std::cin;       // подключишь cin
using std::endl;     // подключишь endl
 
float g(int r1,int r2,float f){
    float a=(r1*r1-r1*r2*cos(f))/sqrt(r1*r1+r2*r2-2*r1*r2*cos(f));
    cout<<"a="<< a<<endl;
    cout<<"r1="<< r1<<endl;
    return(acos(a/r1));
}
 
float s1(int r1,int r2,float g){
    return(r1*r1*(g-sin(2*g)/2));
}
 
float s2(int r1,int r2,float g, float f){
    return(r2*r2*((M_PI-f-g)+sin(2*(f+g))/2));
}
 
main(){
    int n;
    cout<<"vvedi n"<<endl;
    cin>>n;
    float f=2*M_PI/n;
    int a[n-1];
    int i;
    for(i=0;i<=n-1;i++){
        cout<<"vvedite radius "<<i+1<<" okruzhnosti"<<endl;
        cin>>a[i];
        cout<<a[i]<<endl;
    }
    float s;
    switch(n){
        case 1: s=M_PI*a[0]*a[0]; break;
        case 2: s=M_PI*(a[0]*a[0]+a[1]*a[1]); break;
        case 3: case 4: for(i=0,s=0;i<=n-1;i++){
            s+=M_PI*a[i]*a[i]-(s1(a[i],(i<(n-1))?a[i+1]:a[0],g(a[i],(i<(n-1))?a[i+1]:a[0],f))+s2(a[i],(i<(n-1))?a[i+1]:a[0],g(a[i],(i<(n-1))?a[i+1]:a[0],f),f));
            } break;
    }
    cout<<"s="<< s<<endl;
    return 0;
}
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2009, 08:16     Площадь окружностей #11
Цитата Сообщение от sheka
площадь круга = 2ПR)))
2R = D
Pi*D ~= 3*D

http://ru.wikipedia.org/wiki/%D0%9E%...81%D1%82%D1%8C
http://ru.wikipedia.org/wiki/%D0%9A%D1%80%D1%83%D0%B3
kolesoo
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 5
07.11.2009, 09:47  [ТС]     Площадь окружностей #12
Спасибо! Будем разбираться)
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2009, 10:02     Площадь окружностей #13
есть ещё точки пересечения окружностей, их можно соединить с центрами, получится фигура, которой, вроде бы, принадлежат все маленькие площади
sheka
Босс
161 / 127 / 7
Регистрация: 03.06.2009
Сообщений: 751
07.11.2009, 11:13     Площадь окружностей #14
Цитата Сообщение от accept Посмотреть сообщение
2R = D
Pi*D ~= 3*D
я же говорю, это была ошибка)
есть ещё точки пересечения окружностей, их можно соединить с центрами, получится фигура, которой, вроде бы, принадлежат все маленькие площади
Возможно, но для 3х я не уверен. врядли это к чему-то более легкому приведет.
я искал площади всех n кругов, и отнимал по одному разу те части, которые перекрываются. (ищется площадь сегмента и все).
odip
Эксперт С++
7153 / 3293 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
07.11.2009, 22:13     Площадь окружностей #15
Для N==1 тривиально.
Для N==2 тривиально.
Для N==3 и N==4 решение одинаково.
Нужно сложить площади откружностей, потом вычесть площади попарных их пересечений.
Пересечение двух окружностей в данном случае - это два одинаковых сегмента, сложенных вместе.
Нужно рассчитать площади сегментов.
Для этого нужно рассчитать точки пересечения отружностей.
А дальше чистая математика.
kolesoo
0 / 0 / 0
Регистрация: 05.11.2009
Сообщений: 5
08.11.2009, 21:07  [ТС]     Площадь окружностей #16
Цитата Сообщение от odip Посмотреть сообщение
...А дальше чистая математика.
Вот в математике то и весь вопрос)

to sheka
Ваш C++ какой то не С++) У меня Борланд Си 3.1 вроде бы, ругается на синтаксис и на все остальное)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2009, 02:42     Площадь окружностей
Еще ссылки по теме:

Дана сторона равностороннего треугольника. Найти площадь этого треугольника, его высоты, радиусы вписанной и описанной окружностей. C++
C++ Определить на какой итерации площадь вписываемых окружностей составит менее 1% от площади исходной окружности
Найти площадь грани, площадь полной поверхности и объем куба C++
C++ Найти площадь равностороннего треугольника и радиусы вписанной и описанной окружностей

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

Или воспользуйтесь поиском по форуму:
accept
4817 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
09.11.2009, 02:42     Площадь окружностей #17
там, если с фигурой правильно, получается сумма площадей треугольников, например, треугольник A1 O M, где M - точка пересечения окружностей (A1, r1) и (A2, r2)
в каждой окружности два таких треугольника и, главное, перекрытий никаких
а остатки - секторы кругов, тоже без перекрытий и вычисляются по формуле, где нужен угол и радиус
надо просто доказать, что фигура сохраняется для любого n
Yandex
Объявления
09.11.2009, 02:42     Площадь окружностей
Ответ Создать тему
Опции темы

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