Функция:
Множитель для вычисления последующего члена ряда:
Код программы:
//--------------------------------------------------------------------------- #include<iostream.h> #include<conio.h> #include<math.h> #include<windows.h> #include <vcl.h> #pragma hdrstop #pragma argsused //--------------------------------------------------------------------------- char *rus(const char *text); int main(int argc, char* argv[]) { const int maxiter=500; int n; double x,eps=DBL_EPSILON; cout<<rus("Введите любые значения x, где x изменяется |x|<1:")<<endl; cout<<rus("Введите аргумент x=");cin>>x; long double arccos=1,y=arccos; for(n=1;fabs(arccos)>eps;n++) { arccos*=(((2*n*(pow((2*n+1),2))*x*x))/((2*n+2)*(2*n+3)*(2*n-1))); y+=((M_PI/2)-(x+arccos)); if(n<maxiter) { cout<<rus("\nЗначение функции y=")<<y;cout<<rus(" для x=")<<x; cout<<rus(" вычислено после ")<<n;cout<<rus(" итераций")<<endl; } else { cout<<rus("\nРяд расходится!"); break; } } getch(); return 0; } //--------------------------------------------------------------------------- char bufrus[256]; char* rus(const char* text) { CharToOem(text, bufrus); return bufrus; } //---------------------------------------------------------------------------
Результат работы программы:
Введите любые значения x, где x изменяется |x|<1:
Введите аргумент x=0.1
Значение функции y=2.4618 для x=0.1 вычислено после 1 итераций
Значение функции y=3.93252 для x=0.1 вычислено после 2 итераций
Значение функции y=5.40332 для x=0.1 вычислено после 3 итераций
Значение функции y=6.87411 для x=0.1 вычислено после 4 итераций
Значение функции y=8.34491 для x=0.1 вычислено после 5 итераций
Значение функции y=9.81571 для x=0.1 вычислено после 6 итераций
Значение функции y=11.2865 для x=0.1 вычислено после 7 итераций
Значение функции y=12.7573 для x=0.1 вычислено после 8 итераций