Witam, mam działający algorytm na obliczanie pierwiastka funkcji metodą bisekcj, ale chciałbym poprosić o pomoc. Wzót funkcji jest zapisany w kodzie w funkcji double f. Jak zrobić, aby wzór był wczytywany z klwiatury po uruchomieniu programu? Dodam, że wzór składa się zarówno z cyfr jak i litery(x), więc nie wystarczy wczytać do stringa i parsować inteegerem(przynajmniej tak mi się wydaję) Z góry dziękuję za pomoc.
#include <iostream>
#include <iomanip>
#include <cmath>
#include <cstdlib>
using namespace std;
const double EPS0 = 0.0000000001;
const double EPSX = 0.0000000001;
double f(double x)
{
return 3*x*x*x-28*x*x+66;
}
int main()
{
double a,b,x0,fa,fb,f0;
cout << setprecision(5)
<< fixed;
cout << "Obliczanie pierwiastka funkcji - metoda bisekcji\n"
"Podaj zakres poszukiwan pierwiastka:\n\n";
cout << "a = "; cin >> a;
cout << "b = "; cin >> b;
cout << "\n------------------------------------------------\n\n"
"WYNIK:\n\n";
fa = f(a); fb = f(b);
if(fa * fb > 0) cout << "Funkcja nie spelnia zalozen\n";
else
{
while(fabs(a - b) > EPSX)
{
x0 = (a + b) / 2; f0 = f(x0);
if(fabs(f0) < EPS0) break;
if(fa * f0 < 0) b = x0;
else
{
a = x0; fa = f0;
}
}
cout << "x0 = " << setw(15) << x0 << endl;
}
cout << "\n------------------------------------------------\n\n";
system("pause");
return 0;
}