Ukryta treść:
Będę wdzięczny za pomoc.
Kod: Zaznacz cały
#include <iostream>
#include <cmath> // abs
using namespace std;
float a, b, c;
double trapez(double p, double q, double h)
{
return h * (p + q)/2;
}
double func (float x)
{
return a*x*x + b*x + c;
}
int main()
{
int n = 2;
float xp, xk, e, dx;
double S = 0, S1 = 1;
cout << "Wprowadz wspolczynnik a: "; cin >> a;
cout << "Wprowadz wspolczynnik b: "; cin >> b;
cout << "Wprowadz wspolczynnik c: "; cin >> c;
cout << "Podaj xp: "; cin >> xp;
cout << "Podaj xk: "; cin >> xk;
cout << "Podaj dokladnosc e: "; cin >> e;
S1 = trapez (func(xp), func(xk), (xk - xp));
do
{
dx = (xk - xp)/n; // wysokość pojedynczego trapezu
S = S1;
S1 = 0;
for (int i = 0; i < n; i++) S1 += trapez (func(xp + i*dx), func(xp + (i + 1)*dx), dx); // sumowanie n - trapezów
n*=2;
} while ((abs(S1) - abs(S))/abs(S) > e); // warunek "dokladności"
cout << "
Pole S wynosi w przyblizeniu: " << S1;
cin.ignore();
cin.get();
}