Odpowiedź :
#include <iostream>
#include <cmath>
// Struktura reprezentująca równanie sześcienne
struct cubic {
float a, b, c, d;
cubic(float __a, float __b, float __c, float __d) {
a = __a;
b = __b;
c = __c;
d = __d;
}
// Wartość funkcji w punkcie
float value(float __x) {
return a * pow(__x, 3) + b * pow(__x, 2) + c * __x + d;
}
};
// Struktura reprezentująca równanie kwadratowe
struct quadratic {
float a, b, c;
quadratic(float __a, float __b, float __c) {
a = __a;
b = __b;
c = __c;
}
// Całka nieoznaczona funkcji
cubic indefinite_integral() {
cubic result(a / 3, b / 2, c, 0);
return result;
}
// Całka oznaczona funkcji
float definite_integral(float __a, float __b) {
return indefinite_integral().value(fmax(__a, __b))
- indefinite_integral().value(fmin(__a, __b));
}
};
int main() {
quadratic f(2, -3, 5);
float left_limit = 0;
float right_limit = 4;
float area = f.definite_integral(right_limit, left_limit);
std::cout << area;
return 0;
}