#include #include using namespace std; float a = 0, b = 0, c = 0, d = 1, e = 0, x1 = 0, x2 = 100; float epsi = 0.1; float baseY = 5; int dokl = 100; void WypiszTekst(); float Wynik(float x); main() { //odleglosc miedzy jednym a drugim koncem float dx; //wartosci przedzialu x1, x2 float tmpX1 = x1; float tmpX2 = x2; //wartosc dla x1 float tmpW1 = Wynik(x1); //wartosc dla x2 float tmpW2 = 0; //wynik float wynik; do { //deklaracja dx = (tmpX2-tmpX1)/dokl; for (int i = 0; i < dokl; i++) { tmpX2 = tmpX1 + dx; tmpW2 = Wynik(tmpX2); if (((tmpW1 <= baseY) && (tmpW2 >= baseY)) || ((tmpW1 >= baseY) && (tmpW2 <= baseY))) { //jesli baseY znajduje sie w tym przedziale //dx = (tmpX2 - tmpX1) / dokl; <- blad! sprawdzony warunek w while zakonczy petle ! wynik = tmpX1; i = dokl; } else { tmpX1 = tmpX2; tmpW1 = tmpW2; } } } while (dx >= epsi); cout<<"Wynik to: "<< wynik; getch(); } void WypiszTekst() { cout<<"Program liczy pole powierzchni pod wykresem wielomianu 4tego stopnia\n.Podaj wspolczynniki oraz przedzial"<>a; cout<<"Wspolczynnik b:"; cin>>b; cout<<"Wspolczynnik c:"; cin>>c; cout<<"Wspolczynnik d:"; cin>>d; cout<<"Wyraz wolny e:"; cin>>e; cout<<"Wprowadz poczatek przedzialu, x1:"; cin>>x1; cout<<"Wprowadz koniec przedzialu, x2:"; cin>>x2; } float Wynik(float x) { return a*(x*x*x*x)+b*(x*x*x)+c*(x*x)+d*x+e; }