Как объединить два кода в одном

Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) с точностью ε = 0.0001. Вывести число итераций, необходимое для достижения заданной точности. Вычисление S(x) и Y(x) оформить в виде функций. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.
Число π объявить как константу: const double PI = 3.14159265;

введите сюда описание изображения введите сюда описание изображения

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    long double iteration_result, x;
    long double soluton_result = 0.0;
    long double k = 0.0;
    long double factorial = 1.0;
    
    cout << "enter x" << endl;
    cout << ">> ";
    cin >> x;
    
    while (true)
    {
        iteration_result = pow(-1, k) * ( (2*pow(k, 2) + 1) / factorial ) * pow(x, 2*k);
        k++;
        
        factorial = 1.0;
        for (int i = 1; i <= 2*k; i++)
            factorial *= i;
        
        soluton_result += iteration_result;
        
        cout << "soluton result: " << soluton_result << endl;
    }
    
    return 0;
}

Как объединить два кода по условию?


Ответы (1 шт):

Автор решения: Harry

Объединять два кода, один из которых картинка, и оба написаны коряво... Проще — всегда проще и правильнее при выполнении задания писать код с нуля. И самому...

#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;

double S(double x, double eps = 1e-6)
{
    double s = 1, t = 1;
    x *= x;
    for(int k = 1; abs(t*(2*k*k+1)) > eps; ++k)
        s += (t *= -x/(2*k)/(2*k-1))*(2*k*k+1);
    return s;
}

double Y(double x)
{
    return (1-x*x/2)*cos(x)-x/2*sin(x);
}

int main(int argc, char * argv[])
{
    cout << fixed << setprecision(6);
    for(double x = 0; x < 3;  x+= 0.1)
        cout << setw(4) << x << setw(11) << S(x)
            << setw(11) << Y(x) << endl;

}
→ Ссылка