Cheeel666

Untitled

Sep 20th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define OK 0
  4. #define WRONG_INP 1
  5. #define ZERO 0
  6. #define ONE 1
  7. #define TWO 2
  8. #define THREE 3
  9.  
  10. float sequence_sum(float x, float epsilon)
  11. {
  12. float x1 = x;
  13. float x2 = -(pow(x, THREE) / THREE);
  14. float sum = x2 + x1;
  15. int i = 1;
  16. while (fabs(x2 - x1) > epsilon)
  17. {
  18. ++i;
  19. x1 = x2;
  20. x2 = pow(-1, i) * pow(x, TWO * i + ONE) / (TWO * i + ONE);
  21. sum += x2;
  22. }
  23. return sum;
  24. }
  25.  
  26. float abs_val(float x)
  27. {
  28. return atan(x);
  29. }
  30.  
  31. int inp_check(float eps)
  32. {
  33. if (eps <= ZERO || eps > ONE)
  34. return WRONG_INP;
  35. return OK;
  36. }
  37.  
  38. int main()
  39. {
  40. float x, eps, val, absolute_val;
  41. int rc;
  42. rc = scanf("%f %f", &x, &eps);
  43. if (rc != TWO)
  44. return WRONG_INP;
  45. if (inp_check(eps) == ONE || x < -ONE || x > ONE)
  46. return WRONG_INP;
  47.  
  48. val = sequence_sum(x, eps);
  49. absolute_val = abs_val(x);
  50. printf("Приблизительное значение %f %f\n", eps, val);
  51. printf("Точное значение %f\n", absolute_val);
  52. printf("Абсолютная ошибка %f\n", fabs(absolute_val - val));
  53. printf("Приблеженная ошибка %f\n", fabs(absolute_val - val) / absolute_val);
  54. return OK;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment