#include <iostream>
#include <iomanip>
#include <locale>
#include <limits>
using namespace std;
template<class T>
T input(const char* const msg)
{
while(true)
{
T res;
cout<<msg;
cin>>res;
if(cin.fail())
{
cout<<"Ошибка ввода"<<endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(),'\n');
}
else
{
cin.ignore(numeric_limits<streamsize>::max(),'\n');
return res;
}
}
}
// Минимально допустимая точность
const double MinEps=1.0/numeric_limits<unsigned __int64>::max();
int main()
{
setlocale(LC_ALL,"russian");
double E;
while(true)
{
E=input<double>("Введите точность E:");
E=abs(E);
if(E>MinEps)break;
cout<<"Слишком маленькая точность для расчета"<<endl;
}
unsigned __int64 counter=1.0/E; // Количество элементов
int sign=counter&1?1:-1;
double sum=0;
cout<<"Суммируется элементов: "<<counter<<endl;
while(counter)
{
sum+=static_cast<double>(sign)/counter;
--counter;
sign*=-1;
}
cout<<"Сумма:"<<sum<<endl;
system("PAUSE");
return 0;
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.