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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Целочисленная квадратная матрица http://www.cyberforum.ru/cpp-beginners/thread173587.html
Дана целочисленная квадратная матрица. Определить колличество строк, содержащих хотя бы один нулевой элемент.
C++ Ошибка сегментирования (core dumped) собственно вот такая проблема: при попытке помять строки местами возникает сообщение "Ошибка сегментирования (core dumped)" строки меняются в массиве типа double вот код for(MinValue.i;MinValue.i>=0;MinValue.i--) { for(j=0;j<n;j++){ tmp=mas; mas=mas; mas=tmp; http://www.cyberforum.ru/cpp-beginners/thread173583.html
C++ Описать структуру "телефонная книжка"
здравствуйте! требуется создать телефонную книжку. вводятся n-ое количество имен и номеров телефонов, потом сортируются по алфавиту. пробовал создавать структуру Код: struct zk { char name; int numb; }; потом делать массив структур
C++ Как прописать строки по- русски
Как прописать строки по-русски, чтобы при выводе на экран не было иероглифов?
C++ Напишите программу, которая использует функцию для вычисления среднего геометрического трех чисел типа int, что вводит пользователь. http://www.cyberforum.ru/cpp-beginners/thread173518.html
Напишите программу, которая использует функцию для вычисления среднего геометрического трех чисел типа int, что вводит пользователь. Язык форума - русский. Сообщения на других языках являются нарушением правил
C++ Напишите программу, содержащую функцию, которая принимает два числа в качестве аргументов и возвращает их произведения. Напишите программу, содержащую функцию, которая принимает два числа в качестве аргументов и возвращает их произведения. подробнее

Показать сообщение отдельно
MarchZM
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 52
09.10.2010, 15:26  [ТС]     Сумма ряда с заданной точностью
Помогите пожалуйста, программа неправильно считает
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
69
#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)
{
        setlocale (LC_ALL, "Rus");
        double x, eps, result, summand;
        int numbers_of_summands;
 
        do
        {
            do
            {
                cout << "Введите X (-25<X<25): ";
                cin >> x;
 
                if (x>25 || x<-25)
                    cout << "\n\nX должен быть (-25;25), повторите попытку\n\n";
            }
            while(x>25 || x<-25);
 
            do
            {
                cout << "Введите точность (0<ТОЧНОСТЬ<=1]: ";
                cin >> eps;
 
                if (eps<=0 || eps>1)
                    cout << "\n\nТочность должна быть (0;1], повторите попытку\n\n";
            }
            while(eps<=0 || eps>1);
 
            cout << "\n\nМеню" << "\nДля решения через for нажмите 1" << "\nДля решения через while нажмите 2" << "\nДля решения через do_while нажмите 3" << "\nДля выхода нажмите 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 << "\nКоличество слагаемых: " << numbers_of_summands << "\nПоследнее слагаемое: " << summand;
        }
        while(repeat());
}
 
bool repeat (void)
{
        char symbol;
 
        cout << "\n\nПовторить? Да/Нет: ";
        cin >> symbol;
 
        if ((char)tolower(symbol)=='y'||'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
#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=a/b;
    double result=summand;
    for (int i=2;fabs(summand)>eps;i++)
    {
        a+=2*i*x;
        b*=2*i;
        summand=a/b;
        if(i%2!=0);
        else summand*=-1;
                
        result+=summand;
        numbers_of_summands=i;
    }
    return result;
}
Добавлено через 13 часов 49 минут
HELP!!!!

Добавлено через 5 часов 8 минут
Пожалуйста помогите, с ссылками разобрался, а вот с алгоритмом трабл, неправильно решает и всё...
 
Текущее время: 17:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru