3 задание. Я попробовал написать код получилось это: #include <stdio.h> #include <locale> #define N 50 // Количество выполнений double datas(double* a, double* b, double* h, double* E) { printf("Введите точку a (= (-1, 1] = \n"); while (true) { scanf_s("%lf", *(&a)); if (-1 < *a && *a <= 1) { printf("Введите точку b (= (-1, 1] = \n"); while (true) { scanf_s("%lf", *(&b)); if ((-1 < *b && *b <= 1) && (*a < *b)) break; else printf("попробуйте еще раз\n"); } break; } else printf("Попробуйте еще раз\n"); } printf("Введите шаг функции = \n"); while (true) { scanf_s("%lf", *(&h)); if (( * b - *a) >= *h) break; else printf("Попробуйте еще раз\n"); } printf("Введите число E > 0\n"); while (true) { scanf_s("%lf", *(&E)); if (*E > 0) break; else printf("Попробуйте еще раз"); } return 0; } int numerator(int n) { int f = 1; for (int i = 1; i < n + 1; i++) { f *= (3 * i - 2); } return f; } int fact(int n) { int f = 1; for (int i = 1; i < n + 1; i++) { f *= i; } return f; } double funcX(double x) { return 1 / (pow(1 + pow(x, 3), (double)1 / 3)); } double funcN(int n, double x) { long double fn = 1.0; for (int i = 1; i < n+1; i++) { /*printf("%d ", i); printf("%f ", pow(-1, i + 1)); printf("%d ", numerator(i)); printf("%f ", pow(x, 3 * i)); printf("%f ", pow(3, i)); printf("%d ", fact(i)); */ fn -= pow(-1, i + 1) * (numerator(i)) * (pow(x, 3 * i)) / ((pow(3, i)) * (fact(i))); //printf("%lf\n", fn); } return fn; } void Print_function() { double h, E, a, b, fx, fn; datas(&a, &b, &h, &E); printf(" x | fx | fn | (fx - fn)|\n"); for (double x = a; x < b; x+= h) { fx = funcX(x); for (int n = 1; n < N + 1; n++) { fn = funcN(n, x); if ((fx - fn) < E) { if (x < 0) printf(" %.7lf|", x); else printf(" %.7f |", x); printf(" %.7lf|", fx); printf(" %.7lf|", fn); printf(" %.7lf|\n", fx - fn); break; } } } } int main() { setlocale(LC_ALL, "ru"); Print_function(); } Code #include <stdio.h> #include <locale> #define N 50 // Количество выполнений double datas(double* a, double* b, double* h, double* E) { printf("Введите точку a (= (-1, 1] = \n"); while (true) { scanf_s("%lf", *(&a)); if (-1 < *a && *a <= 1) { printf("Введите точку b (= (-1, 1] = \n"); while (true) { scanf_s("%lf", *(&b)); if ((-1 < *b && *b <= 1) && (*a < *b)) break; else printf("попробуйте еще раз\n"); } break; } else printf("Попробуйте еще раз\n"); } printf("Введите шаг функции = \n"); while (true) { scanf_s("%lf", *(&h)); if (( * b - *a) >= *h) break; else printf("Попробуйте еще раз\n"); } printf("Введите число E > 0\n"); while (true) { scanf_s("%lf", *(&E)); if (*E > 0) break; else printf("Попробуйте еще раз"); } return 0; } int numerator(int n) { int f = 1; for (int i = 1; i < n + 1; i++) { f *= (3 * i - 2); } return f; } int fact(int n) { int f = 1; for (int i = 1; i < n + 1; i++) { f *= i; } return f; } double funcX(double x) { return 1 / (pow(1 + pow(x, 3), (double)1 / 3)); } double funcN(int n, double x) { long double fn = 1.0; for (int i = 1; i < n+1; i++) { /*printf("%d ", i); printf("%f ", pow(-1, i + 1)); printf("%d ", numerator(i)); printf("%f ", pow(x, 3 * i)); printf("%f ", pow(3, i)); printf("%d ", fact(i)); */ fn -= pow(-1, i + 1) * (numerator(i)) * (pow(x, 3 * i)) / ((pow(3, i)) * (fact(i))); //printf("%lf\n", fn); } return fn; } void Print_function() { double h, E, a, b, fx, fn; datas(&a, &b, &h, &E); printf(" x | fx | fn | (fx - fn)|\n"); for (double x = a; x < b; x+= h) { fx = funcX(x); for (int n = 1; n < N + 1; n++) { fn = funcN(n, x); if ((fx - fn) < E) { if (x < 0) printf(" %.7lf|", x); else printf(" %.7f |", x); printf(" %.7lf|", fx); printf(" %.7lf|", fn); printf(" %.7lf|\n", fx - fn); break; } } } } int main() { setlocale(LC_ALL, "ru"); Print_function(); }