Вычисление суммы ряда - 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;
Объяснение кода листинга программы
- Начинается цикл while, условием которого является fabs(temp) > eps.
- Внутри цикла temp умножается на (xx)/(2n+1).
- Результат умножения добавляется к переменной s.
- n увеличивается на 1.
- Цикл продолжается, пока fabs(temp) > eps.
- По завершении цикла, s умножается на 2.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д