C++ Вычислить с точностью до заданного 0<ε<1:

Рейтинг: -1Ответов: 1Опубликовано: 02.02.2023

очень нужна помощь

Задание такое: Вычислить с точностью до заданного 0<e<1: формула

Значение 0<x<2 задать с клавиатуры. Считать, что нужная точность достигнута, если очередное слагаемое по модулю меньше e.

Следующий код получился по данной задачи

int main()
{

    setlocale(LC_ALL, "Russian");

    double x = 0, eps = 0;
    const double x1 = 0, x2 = 2, eps1 = 0, eps2 = 1;

    double new_x1 = (x2 - x1) / 2, new_x2 = (x2 + x1) / 2,
        new_eps1 = (eps2 - eps1) / 2, new_eps2 = (eps2 + eps1) / 2;
    if (fabs(x - new_x2) >= new_x1 || fabs(eps - new_eps2) >= new_eps1)
        return 0;

    double sum = 0, memb = x, n = 1;
    while (fabs(memb) >= eps)
    {
        sum += memb;
        n += 2;
        memb *= -x * x / n / (n - 1);
    }

    cout << sum;

    return 0;
}

Ответы

▲ 0Принят

Странно что Harry не ответил на любимую тему. Исправим этот недочет. Вот решение поставленной задачи.

#include <iostream>

int main() {
    double e, x;
    std::cin >> x >> e;
    double a = x, sin = x;

    for (int n = 2; abs(a) >= e; n += 2) {
        a *= -x * x / n / (n + 1);
        sin += a;
        }

    std::cout << sin << "\n";
    }