Задача 1.8
1. Условие задачи
Даны действительные числа x, e. Вычислить с точностью до e
![]()
2. Решение
Оператор задает значение x и точность вычислений e. Сумма рассчитывается в цикле: определяется значение слагаемого
и производится суммирование по формуле S = S + a. Вычисления останавливаются, как только выполнилось условие |a| < e. Результат вычислений S выводится на экран.
3. Алгоритм решения
4. Текст программы
1: #include <stdio.h>
2: #include <conio.h>
3: #include <math.h>
4: void main()
5: {
6: float s, x, e, a;
7: int i, k, f;
8: clrscr();
9: printf ("\nВведите x, e: \n");
10: scanf ("%f%f", &x, &e);
11: s = 1;
12: k = 1;
13: do
14: {
15: f = 1;
16: for (i=2; i<=k+1; i++)
17: f = f*(float)i;
18: a = pow(-1.0,(float)k)*pow(x,4.0*(float)k)/(f*(4.0*(float)k+1.0));
19: printf ("a=%f\n", a);
20: s = s + a;
21: k = k + 1;
22: } while (fabs(a) > e);
23: printf("Сумма равна %.3f .\n", s);
24: printf("\n Нажмите на клавишу Enter. \n");
25: getch();
26: }
5. Работа программы
Введите x, e: 0.9 0.001 a = -0.06561 a = 0.007972 a = -0.000905 Сумма равна 0.941. Нажмите на клавишу Enter.
6. Проверка
Вычисления
показывают, что программа работает корректно:
k=0; x=0,9; s=1;
k=1; x=0,9; s=(-0,9)*(-0,9)*(-0,9)*(-0,9)/(2*5)=-0,06561; |s|>e;
k=2; x=0,9; s=0,007972; |s|>e;
k=3; x=0,9; s=-0,0009052; |s|<e;
s = 1 - 0,06561+ 0,007972 - 0,0009052 = 0,94.