Загрузка...

Помощь в с++, в долгу не останусь

Тема в разделе C/C++ создана пользователем MickeyMouse 3 окт 2021. 164 просмотра

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

    [IMG]
     
  2. aufvolk1
    aufvolk1 3 окт 2021 Заблокирован(а) 59 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
Загрузка...