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

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

Войти
Регистрация
Восстановить пароль
 
 
referent
1 / 1 / 0
Регистрация: 24.04.2014
Сообщений: 36
#1

Найти сумму ряда с заданной точностью = 10 - C++

27.04.2014, 21:46. Просмотров 476. Ответов 15
Метки нет (Все метки)

Народ, что-то не пойму, что имеется в виду:
Найти сумму ряда с точностью =10, общий член которого а=2*n!/(3n)!
Как определяется и проверяется точность в коде?

Добавлено через 56 минут
Народ, как написать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2014, 21:46     Найти сумму ряда с заданной точностью = 10
Посмотрите здесь:

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

Найти сумму ряда с заданной точностью - C++
Даны числа икс и эпселон. Вычислить: \sum_{k=0}^{\infty} \frac{(-1)^k \times x^{2k+1}}{k!}

Найти сумму ряда с заданной точностью c - C++
Найти сумму ряда с заданной точностью. Точность и значение переменной х вводить с клавиатуры. Осуществить проверку ошибок ввода. Считать...

Найти сумму ряда с заданной точностью - C++
Найти сумму ряда с точностью Е=10-4, общий член которого An= (n!)/(n^n) правильно ли я написал программу ? #include <conio.h> ...

Найти сумму ряда с заданной точностью - C++
Люди помогите, не могу справиться с задачкой всю голову сломал Вычислить: \sum_{n=1}^{\propto} {(-1)}^{n} \frac{1}{n!(2n+1)} ...

Найти сумму ряда с заданной точностью - C++
Найти сумму ряда с точностью E=10-3, общий член которого an=2n/(n-1)

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vikichocolated
4 / 4 / 0
Регистрация: 14.04.2014
Сообщений: 60
27.04.2014, 21:50     Найти сумму ряда с заданной точностью = 10 #2
Пусть S- это Ваша сумма. Имеем два элемента n-й и (n+1)-й. Ваша задача в том, чтобы
|S(n+1) - S(n)| <= точность
referent
1 / 1 / 0
Регистрация: 24.04.2014
Сообщений: 36
27.04.2014, 22:32  [ТС]     Найти сумму ряда с заданной точностью = 10 #3
Цитата Сообщение от vikichocolated Посмотреть сообщение
Пусть S- это Ваша сумма
Я не пойму, как циклы будут выглядеть. Откуда и покуда считать сумму?

Добавлено через 38 минут
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
#define _USE_MATH_DEFINES
#include <cmath>
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int factorial(int n)
{
    return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n;
}
 
double Sum(double accuracy, double n)
{
    double sum = 0, current = 0, previous = 0;
 
    do {
        previous = current;
        current = 2 * factorial(n) / factorial(3 * n);
        sum += current;
    } while (abs(current - previous) > 10);
    
    return sum;
}
 
int main()
{
    double n;
    cin >> n;
    cout << Sum(10, n);
    return 0;
}
так не работает
nmcf
5267 / 4587 / 1538
Регистрация: 14.04.2014
Сообщений: 18,220
27.04.2014, 22:45     Найти сумму ряда с заданной точностью = 10 #4
n не может вводиться заранее, тебе надо просто суммировать ряд пока не выполнится условие точности.
Instigator
2 / 2 / 1
Регистрация: 26.04.2014
Сообщений: 12
27.04.2014, 23:08     Найти сумму ряда с заданной точностью = 10 #5
Каждый новый член ряда должен превышать заданную точность.

C++
1
2
3
4
5
6
7
8
9
10
double Sum(double accuracy, [зачёркнуто] double n[/зачёркнуто])
{
    double sum = 0, current = 0;
    for (int n = 1; abs(current) > accuracy; n++)
    {
        current = 2 * factorial(n) / factorial(3 *-n);
        sum += current;
    }
    return sum;
}

А, стоп. При n, стремящейся к бесконечности, каждый новый член А n стремится к нулю. Так что точность явно не десять.
referent
1 / 1 / 0
Регистрация: 24.04.2014
Сообщений: 36
27.04.2014, 23:30  [ТС]     Найти сумму ряда с заданной точностью = 10 #6
Instigator, меня это тоже как-то смутило. Возможно, ошибка в записи.

Добавлено через 2 минуты
Но при любой точности выводит 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
#include <cmath>
#include <iostream>
 
using namespace std;
 
int factorial(int n)
{
    return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n;
}
 
double Sum(double accuracy)
{
    double sum = 0, current = 0;
 
    for (int n = 1; abs(current) > accuracy; n++) {
        current = 2 * factorial(n) / factorial(3*-n);
        sum += current;
     
    }
    return sum;
}
 
int main()
{
    cout << Sum(0.01);
    return 0;
}
Instigator
2 / 2 / 1
Регистрация: 26.04.2014
Сообщений: 12
28.04.2014, 00:16     Найти сумму ряда с заданной точностью = 10 #7
referent,
Ах да, забыл указать, что начальное значение current'a должно быть больше accuracy. Можно написать просто
C++
1
double sum = 0, current = accuracy+1
И ещё в формуле появился минус, смотри:
C++
1
current = 2 * factorial(n) / factorial(3*-n);
referent
1 / 1 / 0
Регистрация: 24.04.2014
Сообщений: 36
28.04.2014, 09:28  [ТС]     Найти сумму ряда с заданной точностью = 10 #8
Instigator, я, конечно, дико извиняюсь, но все равно не работает.

Добавлено через 2 часа 38 минут
Ну народ, кто может помочь? У меня проект по андроиду горит, а я сижу над элементарной, скорее всего задачей.
Instigator
2 / 2 / 1
Регистрация: 26.04.2014
Сообщений: 12
28.04.2014, 10:36     Найти сумму ряда с заданной точностью = 10 #9
Плюнул, написал сам - всё работает. И с теми значениями, что ты последний раз подставлял.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
#include <cmath>
 
void main ()
{
      double accuracy;
      cout << "accuracy = ";
      cin >> accuracy;
      double current = accuracy + 1;
      double sum = 0;
      double fact = 1;
      double fact3 = 1; 
      for (int n = 1; current < accuracy; n++)
      {
              fact = fact*n;
              fact3 = 3*fact3*n;
              current = 2*fact/fact3;
              sum += current;
      }
      cout << "/nSum (" << n << ") = " << sum << "/n/n";
}
Добавлено через 4 минуты
Кстати, если так любишь английские имена, то правильнее было бы использовать "precision" c:
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
28.04.2014, 10:37     Найти сумму ряда с заданной точностью = 10 #10
Instigator, цикл же никогда не выполняется да и вообще эта программа не компилируется.
Instigator
2 / 2 / 1
Регистрация: 26.04.2014
Сообщений: 12
28.04.2014, 10:49     Найти сумму ряда с заданной точностью = 10 #11
fasked,
С радостью бы приложил скрин с работающей программой, но на компе пока проблемы с интернетом.
P.S. Делал в visual studio 6.0
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
28.04.2014, 11:01     Найти сумму ряда с заданной точностью = 10 #12
Instigator, зачем же скрин, тут и так видно:
C++
1
2
      double current = accuracy + 1;
      for (int n = 1; current < accuracy; n++)
что current заведомо больше accuracy.
Instigator
2 / 2 / 1
Регистрация: 26.04.2014
Сообщений: 12
28.04.2014, 11:05     Найти сумму ряда с заданной точностью = 10 #13
Ах да, случайно поставил знак "меньше" - писал вручную с телефона.
Instigator
2 / 2 / 1
Регистрация: 26.04.2014
Сообщений: 12
28.04.2014, 11:11     Найти сумму ряда с заданной точностью = 10 #14
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
#include <cmath>
 
void main ()
{
    double accuracy;
    cout << "accuracy = ";
    cin >> accuracy;
    double current = accuracy + 1;
    double sum = 0;
    double fact = 1;
    double fact3 = 1; 
    for (int n = 1; current > accuracy; n++)
    {
        fact = fact*n;
        fact3 = 3*fact3*n;
        current = 2*fact/fact3;
        sum += current;
    }
    cout << "\nSum (" << n << ") = " << sum << "\n\n";
}
Найти сумму ряда с заданной точностью = 10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2014, 11:12     Найти сумму ряда с заданной точностью = 10
Еще ссылки по теме:

Найти сумму ряда с заданной точностью - C++
Напишите пожалуйста код.

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

Найти сумму ряда с заданной точностью - C++
Нужно написать программу по вычислению суммы ряда y=1/x+1/x^2+...+1/x^n c точностью eps=0.001 Нужно сделать обязательно через функции. ...

Найти сумму ряда с заданной точностью - C++
При некоторых заданных x,N и E, определяемых вводом, вычислите сумму N слагаемых заданного вида, а также сумму тех слагаемых, которые по...


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

Или воспользуйтесь поиском по форуму:
referent
1 / 1 / 0
Регистрация: 24.04.2014
Сообщений: 36
28.04.2014, 11:12  [ТС]     Найти сумму ряда с заданной точностью = 10 #15
Instigator, в общем, окончательный код должен выглядеть вот так:
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{
    double accuracy;
    cout << "accuracy = ";
    cin >> accuracy;
    double current = accuracy + 1;
    double sum = 0;
    double fact = 1;
    double fact3 = 1;
    int n;
    for (n = 1; current > accuracy; n++)
    {
        fact = fact*n;
        fact3 = 3 * fact3*n;
        current = 2 * fact / fact3;
        sum += current;
    }
    cout << "\nSum (" << n << ") = " << sum << "\n\n";
    system("pause");
    return 0;
}
да?
З. Ы: студия 2013 не дает вывести итератор цикла n
Yandex
Объявления
28.04.2014, 11:12     Найти сумму ряда с заданной точностью = 10
Ответ Создать тему
Опции темы

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