Graphic Calculator: FIDocalcus
Проект трёх первокурсников (по инженерному практикуму в первом семестре) по созданию графического калькулятора на FLTK C++
Loading...
Searching...
No Matches
function_roots.h
Go to the documentation of this file.
1#pragma once
2
3// std libs
4#include <string>
5#include <vector>
6
7// Math_calc
8#include "math_base.h"
9
10// Math_func
12
13namespace Math_calc {
14
15/// @brief Класс, хранящий в себе точки - пересеч. графика мат. функ. с осью Ox
17 public:
18 function_roots() = default;
19
20 /**
21 * @brief Инициализирует новый экземпляр function_roots
22 * @param _func: мат. функция
23 * @param left_bottom: левая нижняя точка - начало области поиска точек
24 * @param right_top: правая верхняя точка - конец области поиска точек
25 * @param _precision: точность
26 */
28 Math_calc::Point right_top, double _precision);
29
30 // methods
31
32 // (перегрузка явного преобразования типов)
33 inline explicit operator std::vector<Math_calc::Point>() const {
34 return points;
35 }
36
37 // ~methods
38
39 protected:
40 // methods
41
42 /**
43 * @return std::vector<Segment>: подсегменты, где могут находиться корни
44 * @details Используя тот факт, что по разные стороны от точки-корня мат.
45 * функция имеет разные знаки
46 * @arg сегмент, на котором ищем
47 */
48 std::vector<Segment> estimated_segment(Segment) const;
49
50 /**
51 * @return double: корень на интервале (значение x)
52 * @arg сегмент, на котором ищем
53 */
54 double root_on_interval(Segment) const;
55
56 // ~methods
57
58 private:
59 // vars
60
61 /// @brief Точность
62 // (используем везде, поэтому сохраняем в качестве поля)
63 double precision;
64
65 /// @brief Введенная мат. функция
67
68 std::vector<Point> points;
69
70 // ~vars
71
72 // methods
73
74 /**
75 * @return std::vector<Point>: все корни (точки: пары вида (x,y))
76 * @param left_bottom: левая нижняя точка - начало области поиска точек
77 * @param right_top: правая верхняя точка - конец области поиска точек
78 */
79 std::vector<Point> roots(Math_calc::Point left_bottom, Point right_top) const;
80
81 // ~methods
82};
83
84} // namespace Math_calc
Класс, хранящий в себе точки - пересеч. графика мат. функ. с осью Ox.
Definition function_roots.h:16
double precision
Точность
Definition function_roots.h:63
std::vector< Point > roots(Math_calc::Point left_bottom, Point right_top) const
Definition function_roots.cpp:72
Math_func::function f
Введенная мат. функция
Definition function_roots.h:66
double root_on_interval(Segment) const
Definition function_roots.cpp:45
std::vector< Point > points
Definition function_roots.h:68
std::vector< Segment > estimated_segment(Segment) const
Definition function_roots.cpp:24
Математическая функция
Definition function.h:14
Definition domain_segments.cpp:7
Вещественная точка
Definition math_base.h:9
Вещественный отрезок
Definition math_base.h:22