По заданию нужно:
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от с шагом dx с точностью .
Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значение аргумента, значение функции, вычисленной по формуле, значение функции, разложенной в ряд Тейлора, количество просуммированных членов ряда.
Указание. При вычислении суммы ряда использовать рекуррентные вычисления.
Вот скрин работы:
вот код программы:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <Windows.h>
#include <math.h>
int main(int argc, char* argv[])
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
float xn, xk, dx, e, sum, t, y;
int n;
puts("Введите начальное значение x");
scanf("%f", &xn);
puts("Введите конечное значение x");
scanf("%f", &xk);
puts("Введите шаг");
scanf("%f", &dx);
puts("Введите точность");
scanf("%f", &e);
if (xn < -1 || xn>1 || xk < -1 || xk>1 || e == 0) {
puts("Введены некорректные числа");
}
else {
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", '\xDA', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc2', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc2', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc2', '\xc4', '\xc4', '\xc4', '\xc4', '\xbf');
printf("%c xn %c y %c sum %c n %c\n", '\xb3', '\xb3', '\xb3', '\xb3', '\xb3');
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", '\xc3', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc5', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc5', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc5', '\xc4', '\xc4', '\xc4', '\xc4', '\xb4');
for (; xn <= xk; xn += dx) {
sum = 0;
n = 0;
do {
t = (pow(xn, 2 * n + 1)) / (2 * n + 1);
sum += t;
n++;
} while (t > e);
y = atanh(xn);
if (y < 0) {
printf("%c %.5f %c %.5f %c %.5f %c %2d %c\n", '\xb3', xn, '\xb3', y, '\xb3', sum, '\xb3', n + 1, '\xb3');
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", '\xc3', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc5', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc5', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc5', '\xc4', '\xc4', '\xc4', '\xc4', '\xb4');
}
else if (y > 0) {
printf("%c %.6f %c %.6f %c %.6f %c %2d %c\n", '\xb3', xn, '\xb3', y, '\xb3', sum, '\xb3', n + 1, '\xb3');
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n", '\xc3', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc5', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc5', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc4', '\xc5', '\xc4', '\xc4', '\xc4', '\xc4', '\xb4');
}
}
}
getchar();
return 0;
}