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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
iron-mik
2 / 2 / 0
Регистрация: 20.11.2010
Сообщений: 52
#1

Расчитать значение числового ряда. Помогите найти ошибки. - C++

27.09.2011, 20:44. Просмотров 733. Ответов 3
Метки нет (Все метки)

Необходимо расчитать значение числового ряда:Сумма(от n=1 до бесконечности) 1/((2n-1)*(2n+1)) =1/2 -->(значение стремится к 0.5)
И вычислить относительную и абсолютную погрешность.
Вот моя наработка:

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
#include "stdafx.h"
#include "iostream"
#include "conio.h" 
//Подключение библиотек
using namespace std;
 
int _tmain()
{
    //Инициализация:
    int n;
    double sum=0,m=0,absol=0,relat;
    //Ввод:
    cout<<"Vvedite n: ";
    cin>>n;
    cout<<"\n";
    //Расчитываем значение ряда:
    for(int i=1;i<=n;++i)
    {
        m=i;
        sum=sum+(1/((2*m-1)*(2*m+1)));
    }
    //Вычисляем погрешности:
    absol=0.5-sum;
    relat=(0.5-sum)/sum;
    //Вывод:
    cout<<"Sum="<<sum<<"\n";
    cout<<"Absol="<<absol<<"\n";
    cout<<"Otnos="<<relat<<"\n";
 
    getch();
    return 0;
}
Все хорошо вот только неправильно вычисляет абсолютную погрешность при n>5000 и т.д. Найдите пожалуйста ошибку. Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2011, 20:44     Расчитать значение числового ряда. Помогите найти ошибки.
Посмотрите здесь:

Помогите найти ошибки - C++
Добрый день! Подскажите, в чем здесь ошибка? (прикрепляю скрин)

Помогите найти ошибки. С++. ООП - C++
Собственно Задание: 1. В соответствии с вариантом заданий 1 создать класс, в котором определяются закрытые свойства и открытые методы...

Помогите найти ошибки в программе. - C++
Не могу понять в чем тут ошибка. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;locale&gt; #include &lt;clocale&gt; #include &lt;math.h&gt; ...

Помогите найти ошибки.срочно - C++
срочно потому что уже надо высылать прогу. Задача: записать прогу с функцией,которая решает уравнение второго степени.(количество и само...

Помогите найти ошибки, пожалуйста - C++
почему код выдает ошибки? #include &lt;stdio.h&gt; #define N 20000 //алгоритм &quot;решето Эвклида&quot; unsigned int a; void main(){ ...

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

Быстрая сортировка. Помогите найти ошибки - C++
Совсем мало знакома с с++, посмотрите пожалуйста код, какие есть ошибки? using namespace std; void quickSort(vector&lt;int&gt; a, int l,...

Суммирование числового ряда - C++
дан числовой ряд и некоторое число e, считать сумму до тех пор, пока модуль очередного члена ряда больше заданного числа e или равен ему....

Помогите мне пожалуйста найти ошибки в алгоритме - C++
Здравствуйте, я новичок в сфере программирования, помогите мне пожалуйста найти ошибки в алгоритме: #include &lt;math.h&gt; #include...

Помогите найти ошибки: проверить кратность чисел на 3 - C++
Написать программу которая просит пользователя ввести 10 чисел а после проверяет их кратность на 3 а затем печатает результат проверки...

Помогите найти ошибки в сортировке List STL - C++
Ситуация такая. С помощью одного из пользователей форума дописал свой не рабочий код. И вроде бы всё хорошо. Но появилась ошибка с кейсом...

Сумма членов числового ряда - C++
Дано числовой ряд: Найти сумму ряда с точностью Е=10-5 Помогите чем-нибудь%-)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
27.09.2011, 21:38     Расчитать значение числового ряда. Помогите найти ошибки. #2
Во-первых, давай приведем код в подобающий вид.
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
    // Инициализация
    int     i, n;
    double  sum = 0, m, absol, relat;
 
    // Ввод
    cout << "Vvedite n: ";
    cin >> n;
 
    // Расчитываем значение ряда
    for ( i = 1; i <= n; ++i ) {
        sum += 1.0 / ((2 * i - 1) * (2 * i + 1));
    }
 
    // Вычисляем погрешности
    absol =  0.5 - sum;
    relat = (0.5 - sum) / sum;
 
    // Вывод
    cout << "  Sum = " << sum << endl;
    cout << "Absol = " << absol << endl;
    cout << "Otnos = " << relat << endl;
 
    getch();
    return 0;
}
Когда я переписывал код, я заметил потенциальную ошибку. Проблема может быть в том, что цифра 1 в выражении:
C++
1
sum=sum+(1/((2*m-1)*(2*m+1)));
будет интерпретироваться компилятором как целое значение, и, соответственно, делиться может только на целые части.
Проверь мой код. Думаю он будет рабочим.
iron-mik
2 / 2 / 0
Регистрация: 20.11.2010
Сообщений: 52
27.09.2011, 22:34  [ТС]     Расчитать значение числового ряда. Помогите найти ошибки. #3
Все равно также неправильно выводит
Один вопрос: sum+= -как я понял это тоже самое что sum=sum+...?
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
27.09.2011, 22:38     Расчитать значение числового ряда. Помогите найти ошибки. #4
Цитата Сообщение от iron-mik Посмотреть сообщение
Один вопрос: sum+= -как я понял это тоже самое что sum=sum+...?
Да, это одно и то же.
Yandex
Объявления
27.09.2011, 22:38     Расчитать значение числового ряда. Помогите найти ошибки.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru