C/C++

Помогите решить пример на языке C++

разработать алгоритмы решения задач , написать программы реализующие соответствующие алгоритмы и осуществить их тестирование
Входные данные вводятся с клавиатуры
Вычилсить значение функции с заданной точностью eps = 10 в степени (-4)

Задача на фотке
#include <cmath>
#include <cstdio>
double q; double ch(double x)
{ double xx = x * x, s = 1., p = s; q = 0.;
while (p / s > 3e-5) { q += 2.; p *= xx /
(q * (q - 1.)); s += p; } return s; }
int main()
{ double a, b, h, i, n, x, y; printf("a b n: ");
scanf("%lf%lf%lf", &a, &b, &n); h = (b - a) / n;
for (i = 0; i <= n; i++) { x = a + i * h; y = ch(x);
printf("%12.8f%25.15e%6.0f%16.6e\n", x, y,
q / 2, y / cosh(x) - 1); } return 0; }
Вычисление гиперболического косинуса выносим в отдельную функцию, работу которой проверяем табуляцией в диапазоне [a; b], разбитом на n равномерных частей. На экран выводим аргументы и значения функции, понадобившееся количество слагаемых ряда и относительную ошибку вычисленного гиперболического косинуса в сравнении с ним же, полученного при помощи модуля cmath. А чтобы ошибка не выходила за допустимые рамки в ε=1е-4 (что может случиться, например, при х≈±304), в функции, вычисляющей гиперболический косинус, ε специально уменьшена в несколько раз для создания запаса по точности.
AA
Ahmad Aldiev
66 572
Лучший ответ
 #include  
#include
using namespace std;
double fact(int n) {
return n eps; ++n) {
auto k = 2 * n;
m = pow(x, k) / fact(k);
s += m;
}
return s;
}
double input(const char* msg) {
cout > value;
cin.ignore(0x1000, '\n');
return value;
}
streamsize prec(double eps) {
streamsize p = 0;
while (!static_cast(eps)) {
if (++p > 15) break;
eps *= 10.0;
}
return p;
}
int main() {
auto x = input("x: ");
auto eps = 1e-4;
auto s = sum(x, eps);
cout.setf(ios::fixed);
cout.precision(prec(eps));
cout
Артем Киряков
Артем Киряков
54 687