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

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

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

Вычислить сумму бесконечного ряда: S=1/2-1/4+1/8-1/16 вот такой вот ряд..... В этом коде работает только 1 пункт, где подсчитывает сумму ряда с заданным кол-ом членов. А вот с точностью проблемы....сам код какой то странный....я писал писал...и ничего не выходит((((
#include "stdafx.h"
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
#include "locale.h"

void main()
{setlocale(LC_ALL,"Rus");
float n,s=0,m,t,temp=0,T,i=2;
int q;
 
printf("Вычисление бесконечного ряда:\n[1] Для указанного количества членов ряда\n[2] С заданной точностью\n");
    scanf("%i",&q);
    if(q==1)
    {
        printf("Введите количество членов ряда: ");
    scanf("%f",&m);
 
    for(n=0;n<m;n++)
{
    s=s+(1/(i));
 
    i=(i+2)*(-1);
}
    printf("Сумма равна: %f\n",s);
}
 
    else if(q==2)
    {
        printf("Введите точность: ");
    scanf("%f",&t);
 
    do
    {
temp=s;
s=s+(1/(i));
T=abs(temp-s);
printf("сумма: %f \n",s);
 
i+=2*(-1);
}
while(T>t);
    
}
    getch();
}
Вот эту часть надо сделать.....вот не считает правильно и всё(((( короче, тут введя любую точность он всё время выводит одну и тужу сумму=)
#include "stdafx.h"
#include "conio.h"
#include "stdio.h"
#include "stdlib.h"
#include "locale.h"

void main()
{setlocale(LC_ALL,"Rus");
float n,s=0,m,t,temp=0,T,i=2;
 
printf("Введите точность: ");
        scanf("%f",&t);
 
        do
        {
temp=s;
s=s+(1/(i));
T=abs(temp-s);
printf("сумма: %f \n",s);
 
i+=2*(-1);
}
while(T>t);
 
 getch();
}

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

textual
Листинг программы
double s =   0;
double t = 0.5;  /*текущее слагаемое*/
double eps;
 
printf( "eps = ? " );
scanf( "%f", &eps );
 
while( fabs(t) > eps )
{
  s += t;
  t *= -0.5;
}
 
printf( "\nsum = %f\n", s );  /*точное значение - сумма геометрической прогрессии, школьная формула, вычислить и сравнить*/

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

  1. Объявляются переменные: s (сумма), t (текущее слагаемое), eps (точность).
  2. Пользователю предлагается ввести значение точности с помощью функции scanf.
  3. В цикле while с помощью функции fabs проверяется, больше ли абсолютное значение текущего слагаемого заданной точности.
  4. Если условие выполняется, то текущее слагаемое прибавляется к сумме, а затем переменная t умножается на -0.5.
  5. После выхода из цикла, с помощью функции printf выводится точное значение суммы геометрической прогрессии.

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


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

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

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