Форум программистов, компьютерный форум CyberForum.ru

Вычислить бесконечную сумму ряда с заданной точностью e (e>0) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ строки на pellec C http://www.cyberforum.ru/cpp-beginners/thread401298.html
Дана строка – предложение. Определить количество слов в строке содержащих ровно два символа «С». Символ «С» указывает пользователь. Функции библиотек stlib.h и string.h использовать запрещено.
C++ Перегрузка операторов на С++ Создать класс целых чисел (long). Определить оператор ++, как функцию-член и -- как дружественную функцию. Бинарная операция Создать класс вещественных чисел (double). Определить оператор +, как функцию-член и - как дружественную функцию. http://www.cyberforum.ru/cpp-beginners/thread401296.html
ИСпользуя функцию, вычислить значения выражения. C++
Даны действительные числа s, t. Используя функцию h(a,b)=(a/(1+b^2))+(b/(1+a^2))-((a-b)^3), вычислить значения h(s,t)+max(h^2(s-t, s*t), h^4*(s-t, s+t))+h(1,1).
C++ Нахождение в предлложении букв, и посчитать их.
Определить, сколько раз в заданном предложении встречается сочетание двух первых букв. #include "stdafx.h" // #include <math.h> #include <iostream> #include <string.h> using namespace std; int _tmain(int argc, _TCHAR* argv)
C++ Определить наименьший элемент каждой четной строки матрицы A[N,N]. http://www.cyberforum.ru/cpp-beginners/thread401279.html
Определить наименьший элемент каждой четной строки матрицы A.
C++ Составить программу ,позволяющую по последней цифре данного числа определить последнюю цифру этого куба этого числа. Составить программу ,позволяющую по последней цифре данного числа определить последнюю цифру этого куба этого числа. подробнее

Показать сообщение отдельно
Heidel
 Аватар для Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
07.12.2011, 23:46     Вычислить бесконечную сумму ряда с заданной точностью e (e>0)
Я написала так, она работает

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <cmath>
using namespace std;
 
int main ()
{
    int i = 1;
    double e;
    double s;
    double a;
 
    cout << "e == ";
    cin >> e;
    
    a = pow (-1, 2*1)/(1*(1+1)*(1+2));
    s = a;
 
    while (a >= e)
    {
        i++;
        a = pow (-1, 2*i)/(i*(i+1)*(i+2));
        s=s+a;
    }
 
    cout << "i == " << i << endl;
    cout << "a == " << a << endl; //значение a, которое уже НЕ ВХОДИТ в е
    cout << "s == " << s << endl;
    return 0;
}
У меня проблема была в том, что, похоже, строка
C++
1
a = 1/6;
вычислялась равной нулю, а если написать в том виде, в котором она записана у меня, то все работает.

И да, раз в ряде http://www.cyberforum.ru/cgi-bin/latex.cgi?{-1}^{2*i}, т.е. -1 всегда возводится в четную степень, то а>0 всегда , и
C++
1
fabs(a) < e
это лишнее.

Добавлено через 7 минут
Ааа, всё, поняла в чем ошибка.
Надо
C++
1
a = (double) 1/6;
Ну и соответственно вся программа целиком
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <cmath>
using namespace std;
 
int main ()
{
    int i = 1;
    double e;
    double s;
    double a;
    
    cout << "e == ";
    cin >> e;
    
    a = (double) (1/6);
    s = a;
 
    while (a >= e)
    {
        i++;
        a = pow (-1, 2*i)/(i*(i+1)*(i+2));
        s=s+a;
    }
 
    cout << "i == " << i << endl;
    cout << "a == " << a << endl; //Г§Г*Г*Г·ГҐГ*ГЁГҐ a, êîòîðîå óæå ГЌГ… ÂÕÎÄÈÒ Гў ГҐ
    cout << "s == " << s << endl;
    return 0;
}
 
Текущее время: 11:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru