Kod: Zaznacz cały
#include<iostream>
#include<cstdio>
#include<cmath>
#include<math.h>
#include<windows.h>
using namespace std;
double funkcja(double x, int tab[],int u) //funkcja dla której liczymy calkę
{
double d=0;
double j;
j=1;
do{
d=d+(tab[u-1]*j);
j=j*x;
u=u-1;
}while(u>=0);
return d;
}
double pole_obszaru(int n, double a, double b,int tab[],int u)
{
double P = 0; //zmienna która sumuje pola prostokątów
double d = (b-a)/n; //dlugość przedziałów na jakie dzielimy <a;b>
double x; //punkty pośrednie przedzialów
for (int k=0; k<n; k++)
{
x = a+(d*k)+(d/2);
P = P+d*fabs(funkcja(x,tab, u)); //suma pól prostokątów
}
return P; //suma pól wszystkich prostokątów
}
int main()
{
int ilosc;
double a, b;
cout << "Program oblicza pole obszaru ograniczonego"<<endl;
cout << "wykresem funkcji w przedziale <a;b>" << endl;
cout << "Podaj jakiego stopnia jest ta funkcja wielomianowa:\n" << endl;
int u;
cin>>u;
u=u+1;
int tab;
cout <<"\nPodaj wspolczynniki wielomianu (zaczynajac od pierwszego 'a') za kazdym razem \nzatwierdzajac klawiszem ENTER" << endl;
int i=0;
do{
cin>>tab;
i++;
}while(i<u);
cout << "\npodaj wartosc lewego kranca przedzialu: a ";
cin >> a;
cout << "\npodaj wartosc prawego kranca przedzialu: b ";
cin >> b;
cout << "\nNa ile przedzialow podzielic wyjsciowy przedzial?: ";
cin >> ilosc;
cout << "\nWartosc pola : " << pole_obszaru(ilosc,a,b,tab,u)<<endl;
HANDLE kon = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute (kon,14);
cout<<"\n\nSprawdzenie wartosci wielomianu dla jedynki: "<<funkcja(1,tab,u)<<endl;
return 0;
}