Вычислить сумму бесконечно заданного ряда с заданной точностью eps - C (СИ)

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

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

Вычислить сумму бесконечного ряда: S=1/1-1/3+1/5-1/7...

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

textual
Листинг программы
  #include <stdio.h>
#include <math.h>
#include <stdlib.h>
double getElem(const int i) {
    return 1.0 / ((i % 2 == 0 ? 1 : -1) * (i * 2 + 1));
}
 
double sum(const int i, const double eps) {
    if ((getElem(i) + getElem(i + 1)) * (getElem(i) < 0 ? -1 : 1) < eps) return getElem(i);
    return sum(i + 1, eps);
}
 
double sum(const double eps) {
    return sum(0, eps);
}
 
int main() {
    double eps = 0.0001;
    printf("sum: %lf\n", sum(eps));
    system("pause");
}

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

В этом коде реализована вычислительная модель для определения суммы ряда, основанная на итеративном алгоритме.

  1. Функция getElem(const int i) вычисляет значение i-го элемента ряда на основе простой формулы. Она возвращает 1/((2i+1)*(-1)^(i%2))
  2. Функция sum(const int i, const double eps) рекурсивно вычисляет сумму ряда до i-го элемента с заданной точностью eps.
  3. Если сумма текущего и следующего элементов меньше eps, функция возвращает текущий элемент. В противном случае, она вызывает саму себя для следующего элемента ряда.
  4. Функция sum(const double eps) является оберткой для функции sum(const int i, const double eps), которая принимает eps в качестве единственного аргумента и итерирует до тех пор, пока сумма текущего и следующего элементов не станет меньше eps.
  5. В функции main() задается точность вычислений eps и вызывается функция sum(eps) для вычисления суммы ряда до тех пор, пока сумма текущего и следующего элементов не станет меньше eps. Результат выводится на консоль.
  6. Команда system(pause) приостанавливает выполнение программы до тех пор, пока пользователь не нажмет любую клавишу.

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


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

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

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