Qellex

3.1- 6v

Nov 7th, 2022
645
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.93 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <locale.h>
  4.  
  5. #define MAX_ITER 100000
  6.  
  7. void main() {
  8.     setlocale(LC_ALL, "rus");
  9.     double x,   // аргумент функции
  10.         fx,  // значение функции
  11.         Sn,  // слагаемое с номером n
  12.         S,   // сумма ряда
  13.         eps, // погрешность разложения в ряд
  14.         n;   // номер слагаемого
  15.  
  16.  // Ввод аргумента функции и погрешности разложения
  17.     printf("x = ");
  18.     scanf_s("%lf", &x);
  19.     printf("eps = ");
  20.     scanf_s("%lf", &eps);
  21.  
  22.     // Вычисление функции в точке x
  23.     fx = cos(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) * (x * x) / (2 * 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