/
shepla
/
shlepa
Обзор
Документация
Войти
/
shepla
/
shlepa
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
FileName.cpp
75 строк
2 KB
shepla
upload files
28 ноя 2025, 22:50
28 ноя 2025, 22:50
241f740
Код
Авторство
О чём код?
#include<iostream> #include<cmath> #include<vector> #include<iomanip> using namespace std; typedef double (*uf)(double, double, int&); void tabl(double, double, double, double, uf); double y(double, double, int&); double s(double, double, int&); int main() { double a, b, h, eps; setlocale(LC_ALL, "ru"); cout << "Введите a"<< endl; cin >> a; cout << "Введите b" << endl; cin >> b; cout << "Введите h" << endl; cin >> h; cout << "Введите eps" << endl; cin >> eps; cout << setw(8) << "x" << setw(15) << "y(x)" << setw(10) << "k" << endl; tabl(a, b, h, eps, y); cout << endl; cout << setw(8) << "x" << setw(15) << "s(x)" << setw(10) << "k" << endl; tabl(a, b, h, eps, s); return 0; } void tabl(double a, double b, double h, double eps, uf fun) { int k = 0; double sum; for (double x = a; x < b + h / 2; x += h) { if (fabs(x) < 1e-10) x = 0.0; sum = fun(x, eps, k); cout << setw(8) << x << setw(15) << sum << setw(10) << k << endl; } } double y(double x, double eps, int& k) { k = 0; if (x >= 1 || x <= -1) { cout << "Ошибка: x должен быть в интервале (-1, 1) для корректного вычисления" << endl; return 0; } return 0.25 * log((1 + x) / (1 - x)) - 0.5 * atan(x); } double s(double x, double eps, int& k) { double c, sum; if (x >= 1 || x <= -1) { cout << "Ошибка: x должен быть в интервале (-1, 1) для сходимости ряда" << endl; k = 0; return 0; } c = pow(x, 3) / 3; sum = c; k = 1; while (fabs(c) > eps) { c= c* pow(x, 4) * (4 * k - 1) / (4 * k + 3); sum += c; k++; if (k > 1000) { cout << "Превышено максимальное количество итераций!" << endl; break; } } return sum; }