#include<iostream>
#include <Windows.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
SetConsoleCP(1251); SetConsoleOutputCP(1251);
const double pi=3.1415926535;
double x,e;
int n, k, i, znak;
double s, chisl, znam;
cout<<"Введите x "; cin >>x;
while (x>2*pi)
{
x=x-2*pi;
}
while (x<-2*pi)
{
x=x+2*pi;
}
cout<<"Введите N "; cin >>n;
cout<<"Введите E "; cin >>e;
//Сумма для N слагаемых
chisl=x;
znam=1;
s=0;
znak=1;
k=2;
for (i=0;i<n;i++)
{
s=s+chisl/znam*znak;
znam=znam*k*(k+1);
chisl=chisl*x*x;
znak=znak*(-1);
k=k+2;
}
cout<<"1. sin(x)="<<s<<endl;
//Сумма для E1
chisl=x;
znam=1;
s=0;
znak=1;
k=2;
i=0;
while (abs(chisl/znam)>e)
{
s=s+chisl/znam*znak;
znam=znam*k*(k+1);
chisl=chisl*x*x;
znak=znak*(-1);
k=k+2;
i++;
}
cout<<"2. sin(x)="<<s<<" Количество слагаемых= "<<i<<endl;
//Сумма для E2
e=e/10;
chisl=x;
znam=1;
s=0;
znak=1;
k=2;
i=0;
while (abs(chisl/znam)>e)
{
s=s+chisl/znam*znak;
znam=znam*k*(k+1);
chisl=chisl*x*x;
znak=znak*(-1);
k=k+2;
i++;
}
cout<<"3. sin(x)="<<s<<" Количество слагаемых= "<<i<<endl;
//Точное значение
cout<<"Точное значение sin(x)="<<sin(x)<<endl;
system("pause");
return 0;
}
|