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

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

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

Составить программу для определения площади заштрихованой фигуры - C++

23.12.2015, 05:03. Просмотров 491. Ответов 2
Метки нет (Все метки)

Добрый день! Помогите написать программу в C++.

Вот такие условия: Составить программу для определения методом Монте-Карло площади заштрихованой фигуры

Название: 111.jpg
Просмотров: 22

Размер: 18.2 Кб


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

Составить программу для определения методом Монте-Карло площади заштрихованой фигуры - C++
Всем привет! Помогите,пожалуйста , решить задачу .Нужно найти площадь фигуры методом Монте Карла.Я про этот метод впервые слышу ,поэтому...

Исправить программу для определения площади заштрихованой фигуры - C++
Добрый день! Помогите исправить программу в C++. Вот такие условия: Составить программу для определения методом Монте-Карло площади...

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

Составить блок-схему и программу определения площади прямоугольников - C++
1.Составить блок-схему и программу определения площади прямоугольников высотой 4 см с основанием, меняющимся от 3 до 6 см с шагом 2 мм.

Составить программу определения площади круга по известной длине окружности - C++
Составить программу определения площади круга, если известна длина окружности, ограничивающей этот круг. Значения числа π =3,1416.

Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями - C++
1)Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями.В вариантах № 6–10 использовать метод...

2
Denissimo
38 / 1 / 1
Регистрация: 09.08.2012
Сообщений: 44
23.12.2015, 11:00 #2
вот тут похожая задача
1
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
23.12.2015, 12:44 #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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/*
Составить программу для определения методом Монте-Карло площади заштрихованой фигуры
*/
///////////////////////////////////////////////////////////////////////////////
#include <cmath>
#include <ctime>
#include <complex>
#include <iostream>
#include <random>
///////////////////////////////////////////////////////////////////////////////
typedef double                          T_coord;
typedef std::complex    < T_coord   >   T_point;
///////////////////////////////////////////////////////////////////////////////
class   T_monte_carlo
{
    //-------------------------------------------------------------------------
    T_coord                                     R_;
    T_coord                                     area_;
    T_coord                                     relative_error_;
 
    std::default_random_engine                  gen_;
    std::uniform_real_distribution< T_coord >   distr_;
    int                                         attempts_count_;
    //-------------------------------------------------------------------------
public:
    //-------------------------------------------------------------------------
    T_monte_carlo( int  attempts_count )
        :
        R_                  (100),
        area_               (),
        relative_error_     (),
 
        gen_                ( unsigned(time(0))     ),
        distr_              ( -R_,  R_              ),
        attempts_count_     ( attempts_count        )
    {}
    //-------------------------------------------------------------------------
    void    calculate_area()
    {
        int     successful_attempts_count   =   0;
 
        for( int  i = 0; i < attempts_count_; ++i )
        {
            if  (
                    point_belongs_to_figure
                        (
                            get_rand_point_in_square()
                        )
                )
            {
                ++successful_attempts_count;
            }
        }//for
 
        area_   =       get_square_area() 
                    *   successful_attempts_count 
                    /   attempts_count_;  
    }
    //-------------------------------------------------------------------------
    void    print_result()
    {
        std::cout   <<  "При числе попыток "
                    <<  attempts_count_
                    <<  " относительная ошибка вычисления площади фигуры "
                    <<  std::endl
                    <<  "составляет "
                    <<  relative_error_ * 100
                    <<  " процентов."
                    <<  std::endl;
    }
    //-------------------------------------------------------------------------
    void    calculate_area_and_print_result()
    {
        calculate_area              ();
        calculate_relative_error    ();
        print_result                ();
    }
    //-------------------------------------------------------------------------
private:
    //-------------------------------------------------------------------------
    bool    point_belongs_to_figure( T_point    const   &   point )
    {
       return       abs( point )                        <   R_   
                &&  abs( point.imag() - point.real() )  <   R_;
    }
    //-------------------------------------------------------------------------
    T_point     get_rand_point_in_square()
    {
        return  T_point
                    (
                        get_rand_coord_in_square(),
                        get_rand_coord_in_square()
                    );
    }
    //-------------------------------------------------------------------------
    T_coord     get_rand_coord_in_square()
    {
        return  distr_( gen_ );
    }
    //-------------------------------------------------------------------------
    T_coord     get_square_area()
    {
        return  4 * R_ * R_;
    }
    //-------------------------------------------------------------------------
    void    calculate_relative_error()
    {
        relative_error_     =       ( 
                                            area_ 
                                        -   get_exact_area() 
                                    ) 
 
                                /   get_exact_area();
    }
    //-------------------------------------------------------------------------
    T_coord     get_exact_area()
    {
        return      (
                        acos(-1) / 2    +   1
                    )
 
                *   R_
                *   R_;
    }
    //-------------------------------------------------------------------------
};
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    std::locale::global( std::locale("") );
 
    for(;;)
    {
        std::cout   <<  "\n\nВведите количество попыток: ";
        int     n   =   0;
        std::cin    >>  n;
 
        T_monte_carlo   m( n );
        m.calculate_area_and_print_result();
    }//for
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2015, 12:44
Привет! Вот еще темы с ответами:

Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями - C++
1)Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями. использовать метод прямоугольников. Для...

Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями - C++
Использовать метод прямоугольников. Для построения прямоугольника использовать правый конец отрезка. y=−2x2+3x+6, y=x+2. Добавлено...

Написать программу для вычисления площади фигуры, используя 3 модуля и 3 пользовательские функции - C++
Была поставлена задача написать программу для вычисления площади фигуры, используя 3 модуля и 3 пользовательские функции. Сам код я...

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


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

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

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