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

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

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

Есть программа, вычисляющая сумму значений ряда в заданном интервале с заданной точностью. Вычислительная часть написана верно, но есть вопрос: Почему не выводится конечное значение? Данные, на которых проверялось: (Указаны в порядке ввода в программу) 0.1 0.9 0.05 0.001
#include <stdio.h>      // директивы препроцессора
#include <conio.h>
#include <math.h>
int main()
{   
    float x, s, f, x_nach, x_kon, delta_x, eps, temp;   // описание переменных
    int n;
    printf("\nLaboratornaya rabota nomer 3");
    printf("\nVariant nomer 3");
    printf("\nMR-14-1");
    printf("\nBakanov Maxim");
    printf("\n");
    printf("\nVvod ishodnih dannih:");  // ввод исходных данных
    printf("\n");
    printf("\nx_nach=");                        
    scanf("%f", &x_nach);                               // начальное значение аргумента
    printf("\nx_kon=");                     
    scanf("%f", &x_kon);                                // конечное значение аргумента
    printf("\ndelta_x=");                       
    scanf("%f", &delta_x);                              // шаг изменения аргумента
    printf("\neps=");                       
    scanf("%f", &eps);                                  // точность вычислений
    
    printf("\nDlya  x=%5.3f  do  %5.3f  s shagom  %5.3f  i tochnostiu  %5.3f\n", x_nach, x_kon, delta_x, eps);   // эхо-печать
    printf("\n");
    printf("\n   x      n         s            f");
    printf("\n--------------------------------------");
    x = x_nach;
    do 
    {   // внешний цикл - изменение аргумента
    temp=x;   // первое слагаемое 
    temp*=2;
    s=temp;   // начальное значение суммы
    n=1;   // количество итераций на каждом шаге
    f=log((1+x)/(1-x));   // точное значение функции
while(fabs(temp)>eps)
{
    temp*=(2.0*n-1.0)*(pow(x, (2.0*n+1.0)))/((2.0*n+1.0)*(pow(x, (2.0*n-1.0)))); //Очередное слагаемое
    s+=temp;
    n++;
}
    printf("\n%5.3f     %d     %0.6f     %1.6f", x, n, s, f);
    x += delta_x;   // увеличение аргумента на шаг  delta_x 
}
while (x<=x_kon);
    printf("\n--------------------------------------");
    return(0);
}

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

textual
Листинг программы
}
while (fabs(x - x_kon) < EPSILON);

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

Код, который вы предоставили, является фрагментом и не содержит полных инструкций или объявлений переменных, необходимых для вычисления суммы значений ряда в заданном интервале с заданной точностью. Однако, основываясь на предоставленном коде, можно сделать следующие выводы:

  1. x и x_kon - это две переменные, которые используются в цикле while. Предполагается, что x - это текущее значение переменной, а x_kon - это конечное значение переменной, к которому стремится x.
  2. EPSILON - это константа, которая представляет собой требуемую точность. В данном контексте она используется в цикле while для проверки условия остановки. Цикл будет выполняться до тех пор, пока разница между x и x_kon не станет меньше EPSILON. Однако, без дополнительной информации о том, как именно вычисляется сумма значений ряда и какие значения используются в цикле, сложно дать более подробное объяснение.

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


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

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

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