Вычислить сумму с точностью до e - C (СИ)

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

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

Объясните как вообще делать с этими факториалами???

Решение задачи: «Вычислить сумму с точностью до e»

textual
Листинг программы
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
 
int main()
{
    system("chcp 1251>NUL");
    double x, e, Sk, fact, Sk1, Sk2;
    int k = 0;
 
    printf("x=");
    scanf("%lf", &x);
    printf("e=");
    scanf("%lf", &e);
 
    k = 0;
    fact = 1;
 
    Sk1 = 0;
    Sk2 = 0;
 
    puts("-------------------------------------------------------------------------");
    puts("|\tСумма S(k)\t|\tСумма S(k-1)\t|\tS(k)-S(k-1)\t|");
    puts("-------------------------------------------------------------------------");
 
    do
    {
        if (k > 0) fact = fact*k;
        else fact = 1.0;
        Sk1 = Sk2;
        Sk = (pow(-1.0, k)*pow(x, 2.0 * k + 1.0)) / (fact*(2.0 * k + 1.0));
        Sk2 = Sk1 + Sk;
        printf("|\t%lf\t|\t%lf\t|\t%lf\t|\n", Sk2, Sk1, fabs(Sk2-Sk1));
        k++;
    } while (fabs(Sk2 - Sk1) > e);
 
    puts("-------------------------------------------------------------------------\n");
    printf(""S(k)-S(k-1)"  %lf <= %lf  "e"\n",fabs(Sk2-Sk1), e);
 
    return 0;
}

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

В этом коде выполняется вычисление суммы S(k) с точностью до e. Список действий:

  1. Ввод значений переменных x и e с помощью функции scanf.
  2. Инициализация переменных fact, Sk1, Sk2, k = 0.
  3. Вывод таблицы с названиями и значениями переменных.
  4. Запуск цикла do-while для вычисления суммы S(k).
  5. Внутри цикла:
    • Вычисление значения fact.
    • Вычисление значения Sk1.
    • Вычисление значения Sk2 как суммы Sk1 и Sk.
    • Вывод значений Sk2, Sk1 и разности Sk2-Sk1.
    • Увеличение k на 1.
  6. Цикл выполняется до тех пор, пока разность Sk2-Sk1 больше e.
  7. Вывод таблицы с названиями и значениями переменных.
  8. Вывод сообщения с числом k, значением разности Sk2-Sk1 и числом e.
  9. Возврат 0, означающий успешное выполнение программы.

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


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

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

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