Advertisement
Qellex

3.1 v - 13

Feb 18th, 2021
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.96 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. #define MAX_ITER 10.0
  5.  
  6. void main() {
  7.     double x,   // аргумент функции
  8.         fx,  // значение функции
  9.         Sn,  // слагаемое с номером n
  10.         S,   // сумма ряда
  11.         eps, // погрешность разложения в ряд
  12.         n;   // номер слагаемого
  13.  
  14.  // Ввод аргумента функции и погрешности разложения
  15.     do {
  16.         printf("x = ");
  17.         scanf_s("%lf", &x);
  18.     } while (fabs(x) >= 1);
  19.     printf("eps = ");
  20.     scanf_s("%lf", &eps);
  21.  
  22.     // Вычисление функции в точке x
  23.     fx = sqrt(1 + x);
  24.  
  25.     // Вычисление слагаемого с номером 0
  26.     n = 1;
  27.     Sn = 1;
  28.     S = Sn;
  29.  
  30.     // Пока
  31.     //     значение функции fx отличается от суммы ряда S более, чем на eps,
  32.     //     И номер слагаемого не слишком велик
  33.     // повторять
  34.     while (fabs(fx - S) > eps && n < MAX_ITER) {
  35.         // Вычислить очередное слагаемое домножением предыдущего
  36.         Sn *= ((-1) * (2 * n - 1) * (2 * n) * (1 - 2 * n)) / (4 * n * n * (1 - 2 * n));
  37.         // Добавить слагаемое к сумме
  38.         S += Sn;
  39.  
  40.         // Нарастить номер слагаемого
  41.         n += 1;
  42.     }
  43.  
  44.     // Предупреждение при достижении максимально допустимого количества итераций
  45.     if (n == MAX_ITER)
  46.         printf("Достигнуто максимальное количество итераций:\n", fx);
  47.  
  48.     // Вывести значение функции, суммы и количество слагаемых
  49.     printf("fx=%12.10lf\n", fx);
  50.     printf(" S=%12.10lf\n", S);
  51.     printf(" n=%1.0lf\n", n);
  52. }
  53.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement