Консультация № 192011
05.12.2017, 14:08
0.00 руб.
05.12.2017, 15:12
1 1 1
Уважаемые эксперты! Пожалуйста, помогите с одним вопрос, я написала код, но не особо наверное разобралась с тем, что он должен делать, а точнее не прописала корректно. Что не так? Он работал, но вычислял что-то не то. Собственно, вот сам код:
Код:
include <iostream>
using namespace std;

double Sn(double n, double br) //
{
double an = n, sum = an;
int i = 1;

while (an > res)
{
an *= (1,n)+(1/2+2)+(1/3+3)+(1/n+n);
sum += an;
i++;
}
return sum;
}

int main()
{
double x, br;

setlocale(0,"");

cout << "Введите x: ";
cin >> x;

cout << "Введите br: ";
cin >> br;

if (br > 0.001)
cout << "\n res \n" << endl;

cout << "\n sn(" << res << ") = " << Sn(x, br);
cout << "\n" << endl;
system("pause");
}



Прикрепленные файлы:
7c0baa403856737f3f79292bde82961df9c7dc73.jpg

Обсуждение

давно
Посетитель
7438
7205
05.12.2017, 15:45
общий
это ответ
Здравствуйте, Iv!
Где-то так... Смотрите комментарии...
Код:
#include <iostream>
using namespace std;

//Функция вычисляет индекс члена ряда при котором получим требуемую точность.
// Кроме того, возвращает полученное значение суммы ряда
//Параметры:
//n - ссылка на переменную, куда запишем индекс члена ряда,
// при котором получим требуемую точность e
//e - точность вычислений
//
double Sn(int &n, double e)
{
double fn = 1; //накапливаемое значение факториала
double sn; //очередной член суммы ряда
double sum = 1; //сумма ряда

for(n=2; ; n++) //циклим, начиная со второго члена
{
fn *= n; //получаем факториал для текущего члена ряда
sn = 1/(n+fn); //получаем значение текущего члена ряда
sum += sn; //складываем
if (sn < e) //проверяем на точность
break; //удовлетворяет - выходим
}
return sum; //возвращаем сумму. Индекс - в переменной по ссылке n
}

int main()
{
double Eps; //точность, вводим с консоли
double Sum; //сумма ряда
int n; //искомый индекс

setlocale(0,"");

cout << "Введите точность Eps: ";
cin >> Eps; //введем точность

Sum = Sn(n, Eps); //посчитаем n и Sum
cout << "\n Sn(" << n << ") = " << Sum; //выведем результат
cout << "\n" << endl;
system("pause");
return 0;
}
5
Спасибо большое!
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа