Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #define OK 0
- #define WRONG_INP 1
- #define ZERO 0
- #define ONE 1
- #define TWO 2
- #define THREE 3
- float sequence_sum(float x, float epsilon)
- {
- float x1 = x;
- float x2 = -(pow(x, THREE) / THREE);
- float sum = x2 + x1;
- int i = 1;
- while (fabs(x2 - x1) > epsilon)
- {
- ++i;
- x1 = x2;
- x2 = pow(-1, i) * pow(x, TWO * i + ONE) / (TWO * i + ONE);
- sum += x2;
- }
- return sum;
- }
- float abs_val(float x)
- {
- return atan(x);
- }
- int inp_check(float eps)
- {
- if (eps <= ZERO || eps > ONE)
- return WRONG_INP;
- return OK;
- }
- int main()
- {
- float x, eps, val, absolute_val;
- int rc;
- rc = scanf("%f %f", &x, &eps);
- if (rc != TWO)
- return WRONG_INP;
- if (inp_check(eps) == ONE || x < -ONE || x > ONE)
- return WRONG_INP;
- val = sequence_sum(x, eps);
- absolute_val = abs_val(x);
- printf("Приблизительное значение %f %f\n", eps, val);
- printf("Точное значение %f\n", absolute_val);
- printf("Абсолютная ошибка %f\n", fabs(absolute_val - val));
- printf("Приблеженная ошибка %f\n", fabs(absolute_val - val) / absolute_val);
- return OK;
- }
Advertisement
Add Comment
Please, Sign In to add comment