Загрузка...

Help in c++, I will not stay in debt

Thread in C/C++ created by MickeyMouse Oct 3, 2021. 163 views

  1. MickeyMouse
    Нужно срочно сделать такое задание, в долгу не останусь
    Реализовать функцию mExp, которая рассчитывает значение функции на
    основе ряда Маклорена (возврат результата выполнить через return).
    Обрыва ряда выполняется, когда текущий слагаемое становится меньше
    значения epsilon, которое передается в функцию (как аргумент).
    Функция должна (через аргументы) возвращать количество добавленных
    членов ряда, которая обеспечила это условие завершения, и погрешность
    (Разницу с «правильной» функцией exp (x))

    [IMG]
     
  2. aufvolk1
    aufvolk1 Oct 3, 2021 Banned 59 Nov 8, 2020
    #include <iostream>
    #include <math.h>
    #include <iomanip>

    using namespace std;

    const double epsilon = 1e-10;

    long double ex(long double x, double eps)
    {
    int i = 1;
    long double e = 1.0, temp = 0, fact = 1.0;

    while (fabs(temp = pow(x, i) / (fact *= i)) > fabs(eps)){
    e += temp;
    ++i;
    }
    return e;
    }

    int main() {

    long double arg;

    ios_base::fmtflags old = cout.setf(ios_base::fixed, ios_base::floatfield);

    cout << "x = ";

    while (cin >> arg){
    cout.setf(old, ios_base::floatfield);
    cout << "exp(" << arg << ")\n"
    << "Calculated using Maclaurin series: "
    << setiosflags(ios::fixed) << setprecision(9)
    << ex(arg, epsilon) << endl
    << "Calculated using library function: "
    << exp(arg) << endl << endl;
    cout << "x = ";
    }
    }
    P. S код не мой
     
Top
Loading...