Доброго времени суток, есть проблема с 2мя задачами по cpp. Ежели кто осилит - гляньте и дайте вердикт, правильно или нет (по возможности с пояснением как нужно сделать правильно)
**Задача № 1)**Дано действительные числа x, ε (x!=0, ε>0). Вычислить приближенное значение бесконечной суммы. Вычисление сделать с заданной точностью ε (пока абсолютная величина текущего члена ряда не станет меньше ε). Формула прилагается
main()
{
float k=0, x, u=(x*x)/2, r, s=u, es=1e-3;
while (fabs(u)>=es)
{
r=(pow(-1, k+1)*pow(x,k+2))/(k+1);
u*=r;
s+=u;
k++;
}
cout<<"Sum = "<<s;
getch();
}
Задача №2)
Дано действительные числа x, ε (ε>0). Вычислить с заданной точностью ε приближенное значение бесконечной суммы и сравнить его с точным.
Формула (в ней вроде должна быть моргалка знаков начиная с первого или второго) и точное значение (справа):
main()
{
int n=0, u=1;
float eps=1e-3, s=u, s1, x;
while (abs(u)>=eps)
{
n++;
u=pow(-1,n)*n;
s+=u;
}
s1=1/(1-x);
if (fabs(s-s1)<=eps) cout<<"To4noe zna4enie";
else cout<<"Neto4noe zna4enie";
getch();
}
Лень разбирать ваш код так поздно, так что вот мои варианты:
1
const double eps = 1e-8;
double series(double x, double epsilon)
{
double term = x*x/2.0, sum = term;
for(int k = 0; fabs(term) > epsilon; ++k)
{
sum += (term *= -x*(k+1)/double((k+2)*(k+3)));
}
return sum;
}
int main(int argc, const char * argv[])
{
for(double x = -1.0; x <= 1.0; x += 0.1)
{
cout << fixed << setprecision(2) << setw(5) << x
<< setprecision(10) << setw(15) << series(x,eps) << endl;
}
}
2
const double eps = 1e-8;
double series(double x, double epsilon)
{
double term = 1.0, sum = term;
while(fabs(term) > epsilon)
{
sum += term *= x;
}
return sum;
}
int main(int argc, const char * argv[])
{
for(double x = -0.9; x <= 0.9; x += 0.1)
{
cout << fixed << setprecision(2) << setw(5) << x
<< setprecision(10) << setw(15) << series(x,eps)
<< setw(15) << (1.0/(1-x)) << endl;
}
}
Если вы изучали в школе геометрическую прогрессию, то должны бы понимать, что во втором случае никакой "моргалки знаков" нет...
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости