All pastes #552655 Raw Edit

y_w

public text v1 · immutable
·published 2007-06-09 12:07 UTC
rendered paste body
#include <iostream>
#include <conio.h>

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"<<endl;
    cout<<"Wspolczynnik a:";
    cin>>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;
}