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

Сумма ряда с заданной точностью - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сумма по главной диагонали http://www.cyberforum.ru/cpp-beginners/thread175027.html
Сумма по главной диагонали Рассчитать общую сумму элементов, расположенных под главной диагональю в данном NxN квадратный стол. Вход Первая линия N (1 <= N <= 100). Тогда NxN таблице дается (все числа целые) Выход Общая сумма элементов, расположенных под главным диагоналям
C++ Нулевое положение. Нулевое положение. В данной матрицы найти положение нуля. Вход Первая линия N и M (1 <= N, M <= 100). Тогда NxM таблице дается (все числа целые) Выход Первый номер должен быть номер строки, а затем номер столбца нулевой своей стихии. http://www.cyberforum.ru/cpp-beginners/thread175026.html
массивы минимум C++
Минимальная в таблице Вы данной таблицы, которые состоят из линий N и M строк. Все номера в таблице, природных и не больше, чем 1000. Ваша задача состоит в нахождении минимума в таблице. Вход: Первая линия containts N (число строк) и M (число строк) (1 <= N <= 100, 1 <= M <= 100) . Вся эта таблица дана.
Решение уравнения с синус и кос итп C++
Y=((arctd(b-a)^2/3)^d+sin(c+d^2))/((e^c-a)^1/2+7,0597*10^(-3)) + (ln^2(a+b)/sin(a-c)+Пи) ребят помоги кто чем может, 1 семестр программирования надо пережить, не дайте умереть плз)
C++ Sum under main diagonal http://www.cyberforum.ru/cpp-beginners/thread175020.html
Sum under main diagonal Calculate the total sum of element that are located under main diagonal in a given NxN square table. Input First line N (1<=N<=100). Then NxN table is given(all number are integers) Output The total sum of element that are located under main diagonals
 

Показать сообщение отдельно
MarchZM
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 52
11.10.2010, 17:54     Сумма ряда с заданной точностью
Помогите пожалуйста, уже не знаю что и делать, неправильно решает программа...
Для х ( -25 < x < 25) составить функцию, которая вычисляет сумму ряда с заданной точностью 0<eps<=1 . Считать, что требуемая точность достигнута, если очередное слагаемое оказалось по модулю меньше чем eps. Функция в качестве результата должна вернуть вычисленную сумму, количество учтенных слагаемых и последнее слагаемое, которое было включено в сумму.
В вызывающей функции main() организовать контроль ввода чисел x и eps.


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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <math.h>
using namespace std;
double calculate_for(const double , const double , int& , double& );
double calculate_while(const double , const double , int& , double& );
double calculate_do_while(const double , const double , int& , double& );
bool repeat (void);
void main (void)
{
        double x, eps, result, summand;
        int numbers_of_summands;
 
        do
        {
            do
            {
                cout << "Input X (-25<X<25): ";
                cin >> x;
 
                if (x>25 || x<-25)
                    cout << "\n\nX must be (-25;25), try again...\n\n";
            }
            while(x>25 || x<-25);
 
            do
            {
                cout << "Input epselent (0<EPS<=1]: ";
                cin >> eps;
 
                if (eps<=0 || eps>1)
                    cout << "\n\nEpselent (0;1], try again...\n\n";
            }
            while(eps<=0 || eps>1);
 
            cout << "\n\nMenu" << "\nfor-press 1" << "\nwhile-press 2" << "\ndo_while-press 3" << "\nquit-press 0\n";
            int number;
            cin >> number;
            switch (number)
            {
                case 1: calculate_for(x, eps, numbers_of_summands, summand); break;
                case 2: calculate_while(x, eps, numbers_of_summands, summand); break;
                case 3: calculate_do_while(x, eps, numbers_of_summands, summand); break;
                case 0: exit(0);
            }
            if (number=1)
                result=calculate_for(x, eps, numbers_of_summands, summand);
            if (number=2)
                result=calculate_while(x, eps, numbers_of_summands, summand);
            if (number=3)
                result=calculate_do_while(x, eps, numbers_of_summands, summand);
            
            cout << "Result: " << result << "\nNumber of summands: " << numbers_of_summands << "\nLast summand: " << summand;
        }
        while(repeat());
}
 
bool repeat (void)
{
        char symbol;
 
        cout << "\n\nTry again? Yes/No: ";
        cin >> symbol;
 
        if ((char)tolower(symbol)=='y')
        return 1;
        else
        return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <math.h>
double calculate_for(const double x, const double eps, int& numbers_of_summands, double& summand)
{
    numbers_of_summands=1;
    double a=-4*x-x*x;
    double b=2;
    summand=-x*(4+x)/2;
    double result=summand;
    int i, p=1;
    for (i=2;fabs(summand)>=eps;i++)
    {
        a+=powf(-1, p)*2*i*x;
        b*=2*i;
        summand=a/b;
        if(i%2==0)
            p++;
                
        result+=summand;
        numbers_of_summands=i;
    }
    return result;
}
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
#include <math.h>
double calculate_while(const double x, const double eps, int& numbers_of_summands, double& summand)
{
    numbers_of_summands=1;
    double a=-4*x-x*x;
    double b=2;
    summand=a/b;
    double result=summand;
    int i=2, p=1;
    do
    {
        a+=powf(-1, p)*2*i*x;
        b*=2*i;
        summand=a/b;
        if(i%2==0)
            p++;
                
        result+=summand;
        numbers_of_summands=i;
        i++;
    }
    while (fabs(summand)>=eps);
    return result;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <math.h>
double calculate_do_while(const double x, const double eps, int& numbers_of_summands, double& summand)
{
    numbers_of_summands=1;
    double a=-4*x-x*x;
    double b=2;
    summand=a/b;
    double result=summand;
    int i=2, p=1;
    while (fabs(summand)>=eps)
    {
        a+=powf(-1, p)*2*i*x;
        b*=2*i;
        summand=a/b;
        if(i%2==0)
            p++;
                
        result+=summand;
        numbers_of_summands=i;
        i++;
    }
    return result;
}
Добавлено через 1 час 35 минут
Вот изображение
Миниатюры
Сумма ряда с заданной точностью  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru