Advertisement
Qellex

Untitled

Feb 18th, 2021
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 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 = 0;
  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)) / (4 * n * n * (1 - 2 * n));
  37.  
  38. printf("%lf\n", Sn);
  39. // Добавить слагаемое к сумме
  40. S += Sn;
  41.  
  42. // Нарастить номер слагаемого
  43. n += 1;
  44. }
  45.  
  46. // Предупреждение при достижении максимально допустимого количества итераций
  47. if (n == MAX_ITER)
  48. printf("Достигнуто максимальное количество итераций:\n", fx);
  49.  
  50. // Вывести значение функции, суммы и количество слагаемых
  51. printf("fx=%12.10lf\n", fx);
  52. printf(" S=%12.10lf\n", S);
  53. printf(" n=%1.0lf\n", n);
  54. }
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement