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

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

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

Подскажите, пожалуйста, где у меня ошибка. Программа запускается, запрашивает значения, но выводит таблицу значений. Необходимо было: Вычислить значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента x (x_nach, x_kon), шаге его изменения delta_x и точности вычислений eps. Вычисленные значения ряда сравнить со значениями заданной функции f(x). Результаты вычислений вывести в виде таблицы с заголовком. Дано: (Сумма при n=0 до бесконечности) Рекурентная функция: Сама программа:
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <math.h>
  4. int main()
  5. {
  6. float x, s, f, x_nach, x_kon, delta_x, eps, temp;
  7. int n;
  8. double val;
  9. printf("\nVvod ishodnih dannih:");
  10. printf("\n");
  11. printf("\nx_nach=");
  12. scanf("%f", &x_nach);
  13. printf("\nx_kon=");
  14. scanf("%f", &x_kon);
  15. printf("\ndelta_x=");
  16. scanf("%f", &delta_x);
  17. printf("\neps=");
  18. scanf("%f", &eps);
  19. printf("\nDlya x=%5.3f do %5.3f s shagom %5.3f i tochnostiu %5.3f\n", x_nach, x_kon, delta_x, eps);
  20. printf("\n");
  21. printf("\n x n s f");
  22. printf("\n--------------------------------------");
  23. val=(1.0+x)/(1.0-x);
  24. x = x_nach;
  25. do {
  26. temp=x;
  27. s=x;
  28. n=1.0;
  29. f=log(val);
  30. while(fabs(temp)>eps);
  31. {
  32. temp*=(x*x)*(2*n+1)/(2*n+3);
  33. s+=temp;
  34. n++;
  35. }
  36. printf("\n%5.3f %d %0.6f %0.6f", x, n, s, f);
  37. x += delta_x;
  38. }
  39. while (x <= x_kon);
  40. printf("\n--------------------------------------");
  41. return(0);
  42. }

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

textual
Листинг программы
  1. while(fabs(temp)>eps);
  2. {
  3.     temp*=(x*x)/(2*n+1);
  4.     s+=temp;
  5.     n++;
  6. }
  7. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы