/* Metody Numeryczne zadanie nr 6 Przygotował: Dawid Grzeszuk Kierunek: Informatyka 3 semestr Środowisko: Visual Studio 2015 Język programowania: C++ */ #include #include #include using namespace std; double eps = 1.e-6; class Funkcja { private: double x, x0, x1; int liczba_krokow; public: Funkcja(double zmienna_x0, double zmienna_x1) { this->x = 0; this->x0 = zmienna_x0; this->x1 = zmienna_x1; this->liczba_krokow = 0; } double liczenie_funkcji(double x) { return(x-2*exp(-x)); } double liczenie_siecznej() { do { //wykonywanie funkcji x = x1 - liczenie_funkcji(x1)*(x1 - x0) / (liczenie_funkcji(x1) - liczenie_funkcji(x0)); //zamiana wartosci x0 = x1; x1 = x; //zwiekszanie liczby krokow liczba_krokow++; } while (!(fabs(liczenie_funkcji(x)) < eps)); return x; } int zwroc_liczbe_krokow() { return liczba_krokow; } }; int main() { double x0 = 0; double x1 = 0; cout << ("prosze podaj x0: "); cin >> x0; cout << ("prosze podaj x1: "); cin >> x1; cout << ("podaj dokladnosc: "); cin >> eps; Funkcja *obiekt = new Funkcja(x0, x1); cout << endl << ("wynik to: ") << obiekt->liczenie_siecznej() << endl; cout << ("wynik wyliczono w ") << obiekt->zwroc_liczbe_krokow() << (" krokach") << endl; cout << ("wynik uzyskano z dokladnoscia: ") << eps << endl; delete obiekt; return 0; }