Вычислим сумму бесконечного сходящегося ряда. Суммирование нужно прекратить при появлении в сумме слагаемых, имеющих абсолютную величину, меньшую заданной погрешности d. Значение d задается пользователем.
Возьмем, к примеру, ряд
Самый простой вариант решения – в цикле считать сумму (с учетом знака слагаемых), пока член ряда не станет меньше последовательности.
Запрашиваем у пользователя значение погрешности и аргумента функции. При этом нужно учитывать, что аргумент не может быть равен нулю. Поэтому используем дополнительный цикл с постусловием, пока пользователь не введет другое значение.
Затем считаем первый член ряда, потом переходим к циклу расчетов.
Текст программы:
Возьмем, к примеру, ряд
Самый простой вариант решения – в цикле считать сумму (с учетом знака слагаемых), пока член ряда не станет меньше последовательности.
Запрашиваем у пользователя значение погрешности и аргумента функции. При этом нужно учитывать, что аргумент не может быть равен нулю. Поэтому используем дополнительный цикл с постусловием, пока пользователь не введет другое значение.
Затем считаем первый член ряда, потом переходим к циклу расчетов.
Текст программы:
//программа расчета суммы ряда
//погрешность и аргумент задаются пользователем
#include <iostream.h>
#include <math.h>
int main()
{
double d, dArg, dSumma=0.0;
cout<<"Программа расчета суммы сходящегося ряда\n"
<<"S=1/tg(x)-1/tg(2x)+1/tg(3x)-...\n";
do
{ cout<<"Введите погрешность d: ";}
while(!(cin>>d));
cout<<"\nВведите аргумент функции: ";
cin>>dArg;
while(dArg==0)
{
cout<<"\nВведите аргумент функции: ";
cin>>dArg;
}
int number=1;
double dCount=1/tan(number*dArg);
cout<<"Сумма ряда "<<'\t'<<"Последнее слагаемое \n";
while(fabs(dCount)>d)
{
if(number%2) dSumma= dSumma+dCount;
else dSumma=dSumma-dCount;
cout<<dSumma<<"\t\t"<<dCount<<endl;
number++;
dCount=1/tan(number*dArg);
}
cout<<" Последнее слагаемое "<<dCount<<endl;
cin.get();
return 0;
}
