Помогите Пожалуйста, Не Работает Задача

Lizzz

New Member
26.01.2013
0
0
#1
Привет всем. Уже выкладывала эту задачу с просьбой помочь с дальнейшим решением. На мою тему откликов не последовало. Я вроде как дописала эту программу сама, но она что-то не работает. Может быть, кто-нибудь сможет помочь понять, в чем проблема. Очень нужно. Спасибо заранее.

При некоторых заданных x, N и E, определяемых вводом, вычислить:
a)сумму N слагаемых заданного вида;
:)сумму тех слагаемых, которые по абсолютной величине больше Е.
Для случая b выполнить суммирование для двух значений Е, отличающихся на порядок, и при этом определить количество слагаемых, включенных в сумму. Сравнить результаты с точным значением функции, для которой данная сумма определяет приближенное значение при x, лежащем в интервале (-R, R).
arctg(x)= x - (x^3)/3 + (x^5)/5 - (x^7)/7 + (x^9)/9 ... (R = 1)
Вот код:


#include <iostream>
#include <cmath>

using namespace std;

int main()
{
int i, ks;
float s, sl, n, e1, e2, tz, E, x;
double atan(int x );
bool t;
cout << "n = ";
cin >> n;
cout << "Введите x от -1 до 1 ";
cin >> x;
cout << "e1 = ";
cin >> e1;
cout << "c2 = ";
cin >> e2;
s = 0; ks = 0; E = e1 + e2; t = 1;
for (i = 0; i <= n; i++)
{
{
sl = pow( -1, n ) * (pow( x,(2* n + 1)))/ (2*n +1);
s = s + sl;

}

if (abs(sl) <= E) t = 0;
else
{
sl = pow( -1, n ) * (pow( x,(2*n + 1))) / (2*n +1);
s = s + sl;
ks = ks + 1;
}
t = 1;
tz = atan(x);

cout<< "Сумма слагаемых заданного вида" << s << endl;
cout << "Точное значение функции" << tz;
cout << "Количество слагаемых равно " << ks << endl;

}
return 0;

}
 

Lizzz

New Member
26.01.2013
0
0
#3
Я представила в виде ряда саму функцию, именно в этом цикле вроде бы все правильно вычисляется. Но программа не проходит отладку, внимательно проверила, вроде ничего нигде не подчеркивает, в чем проблема, не пойму
 
R

rrrFer

Гость
#4
для случая b надо хранить предыдущее значение члена ряда, как то так:
Код:
p = x;
s = 0;
prev = 0;
for (int i = 0;; ++i) {
if (i%2) z = -1;
else z = 1;
s += z * p/(i*2 + 1);
if (fabs(z * p/(i*2 + 1) + prev) < eps)
break;
prev = z * p/(i*2 + 1);
p = p * x * x;
}
тоже не проверял

Добавлено:
Но программа не проходит отладку, внимательно проверила, вроде ничего нигде не подчеркивает, в чем проблема, не пойму
используй пошаговый режим

Добавлено: если есть скайп и аська - пиши в аську (мой номер в подписи) логин скайпа. Покажешь в скайпе экран, научу пользоваться отладчиком и вместе найдем ошибку. Я сегодня готов сделать одно доброе дело ))
 

Lizzz

New Member
26.01.2013
0
0
#5
Ой, большое спасибо, правда, эта задача уже заработала))) А доброе дело только на нее распространяется? Нельзя ли в другой задаче помочь найти ошибку?)) Точнее я даже знаю, где она, только не знаю, как исправить)