Вычислить сумму ряда и указать количество слагаемых - C (СИ)

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

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

Дано действительное число х (0<x<=1). Вычислить сумму ряда с точностью e=10^-6 и указать количество слагаемых. Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше e. помогите пожалуйста

Решение задачи: «Вычислить сумму ряда и указать количество слагаемых»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
 
double factorial(int t)
{
    return tgamma((double)t + 1.0);
}
 
double absd(double t)
{
    return t < 0 ? -t : t;
}
 
double f(double x, int *num)
{
    const double eps = 1e-6;
    *num = 0;
 
    double res = 0.0;
    int k;
    for(k = 1; ; k++)
    {
        double r = pow(-1.0, (double)k) / factorial(k << 1) * pow(x / 3.0, 4.0 * (double)k);
        if(absd(r) < eps) return res;
        res += r;
        *num = *num + 1;
    }
}
 
int main()
{
    double x, y;
    int n;
    scanf("%lf", &x);
    y = f(x, &n);
    printf("Summa = %lf, chislo slagaemych = %d\n", y, n);
    return 0;
}

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

Выше представлен код на языке C, который вычисляет сумму ряда и количество слагаемых.

  1. В функции factorial используется функция tgamma из библиотеки , которая вычисляет факториал числа. В данном случае, факториал числа t + 1 вычисляется как tgamma((double)t + 1.0).
  2. В функции absd используется тернарный оператор для определения абсолютного значения числа. Если число t меньше нуля, то возвращается его отрицательное значение, иначе возвращается само число.
  3. В функции f определяется ряд с помощью цикла for, который выполняется до тех пор, пока абсолютное значение произведения не станет меньше заданной точности eps. Значение eps равно 1e-6.
  4. Каждое слагаемое ряда определяется как pow(-1.0, (double)k) / factorial(k << 1) * pow(x / 3.0, 4.0 * (double)k). Здесь используется операция сдвига влево (k << 1) для удвоения значения k.
  5. В функции main пользователю предлагается ввести значение x с клавиатуры, затем вызывается функция f с этим значением и неинициализированной переменной n (которая будет использоваться как указатель на переменную, которая будет изменяться в процессе работы функции). Функция f возвращает сумму ряда y и количество слагаемых n.
  6. Наконец, в функции main выводятся значения y и n с помощью функции printf. Значение y представляет собой сумму ряда, а значение n - количество слагаемых.

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


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

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

14   голосов , оценка 4.429 из 5