Вычислить значение cosx с помощью ряда - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Не могу найти ошибку в решении задачи: Задача. Дано действительное число x. Вычислить значение cosx с помощью ряда (в картинке внизу сам ряд) Для проверки результата вычислить cosx с помощью стандартной функции.
#include <stdio.h>
#include <math.h>
#define   E  1e-5      
main()
{
float  x,          
y;          
float  a;           
int    n;           
printf ("x=");
scanf ("%f",&x);
y=0; a=0; n=0;
while ( fabs(a) >= E )
{ y=y+a;
n++;
a=-a*x*x/(2*n-1)*2*n;
}
printf ("y=%f\n",y);
printf ("cosx=%f\n",cos(x));
}
я скорее всего неправильно саму функцию описал в
a=-a*x*x/(2*n-1)*2*n;
Буду бесконечно благодарен за помощь сам не разберусь ато

Решение задачи: «Вычислить значение cosx с помощью ряда»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
#define   E  0.000001  
 
 
int main()
{
    double  x, y;
    double  a;
    int    n, k;
    double fact;
    printf("x=");
    scanf("%lf", &x);
    y = 1; a = 0; n = 1;
    fact = 1;
    k = 1;
    do
    {
        fact = fact*(2.0 * n - 1.0)*(2.0 * n);
        k = -k;
        a = k*pow(x, 2.0 * n) / fact;
        y = y + a;
        n++;
        printf("a=%.12lf\n", a);
    } while (fabs(a) >= E);
    printf("y=\t%.12lf\n", y);
    printf("cosx=\t%.12lf\n", cos(x));
}

Объяснение кода листинга программы

  1. #include — подключает файл стандартного ввода/вывода
  2. #include — подключает файл с математическими функциями
  3. #define E 0.000001 — определяет значение переменной E
  4. int main() — функция main() является точкой входа в программу
  5. double x, y; — объявляет переменные x и y типа double
  6. double a; — объявляет переменную a типа double
  7. int n, k; — объявляет переменные n и k типа int
  8. printf(x=); — выводит сообщение с запросом на ввод значения переменной x
  9. scanf(%lf, &x); — считывает значение переменной x с помощью функции scanf()
  10. y = 1; a = 0; n = 1; — инициализирует переменные y, a и n начальными значениями
  11. fact = 1; — инициализирует переменную fact единицей
  12. k = 1; — инициализирует переменную k единицей
  13. do — начинается цикл do-while
  14. fact = fact(2.0 n - 1.0)(2.0 n); — вычисляет значение факториала n
  15. k = -k; — меняет знак переменной k
  16. a = kpow(x, 2.0 n) / fact; — вычисляет значение переменной a
  17. y = y + a; — добавляет значение переменной a к переменной y
  18. n++; — увеличивает значение переменной n на единицу
  19. printf(a=%.12lf\n, a); — выводит значение переменной a
  20. while (fabs(a) >= E); — цикл do-while выполняется до тех пор, пока значение переменной a не станет меньше E
  21. printf(y=\t%.12lf\n, y); — выводит значение переменной y
  22. printf(cosx=\t%.12lf\n, cos(x)); — выводит значение функции cos() для переменной x

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.636 из 5
Похожие ответы