Вычисление суммы ряда - C (СИ) (71561)

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

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

Подскажите, пожалуйста, где у меня ошибка. Программа запускается, запрашивает значения, но выводит таблицу значений. Необходимо было: Вычислить значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента x (x_nach, x_kon), шаге его изменения delta_x и точности вычислений eps. Вычисленные значения ряда сравнить со значениями заданной функции f(x). Результаты вычислений вывести в виде таблицы с заголовком. Дано: (Сумма при n=0 до бесконечности) Рекурентная функция: Сама программа:
#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;
    double val;
    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--------------------------------------");
    val=(1.0+x)/(1.0-x);
    x = x_nach;
    do { 
    temp=x;
    s=x;
    n=1.0;
    f=log(val);
while(fabs(temp)>eps);
    {
    temp*=(x*x)*(2*n+1)/(2*n+3);
    s+=temp;
    n++;
}
    printf("\n%5.3f     %d     %0.6f     %0.6f", x, n, s, f);
    x += delta_x;
}
while (x <= x_kon);
    printf("\n--------------------------------------");
    return(0);
}

Решение задачи: «Вычисление суммы ряда»

textual
Листинг программы
while(fabs(temp)>eps);
{
    temp*=(x*x)/(2*n+1);
    s+=temp;
    n++;
}
s*=2;

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

  1. Начинается цикл while, условием которого является fabs(temp) > eps.
  2. Внутри цикла temp умножается на (xx)/(2n+1).
  3. Результат умножения добавляется к переменной s.
  4. n увеличивается на 1.
  5. Цикл продолжается, пока fabs(temp) > eps.
  6. По завершении цикла, s умножается на 2.

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


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

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

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