Как объединить два кода в одном
Вывести на экран таблицу значений функции 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 шт):
Объединять два кода, один из которых картинка, и оба написаны коряво... Проще — всегда проще и правильнее при выполнении задания писать код с нуля. И самому...
#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;
}

