Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Comeodore
1 / 1 / 0
Регистрация: 28.09.2018
Сообщений: 68

Вычислить сумму ряда

23.10.2018, 21:57. Показов 1296. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Посчитать для 0 <= x <= 2 до с точностью члена, который меньше (10)^-5, естественно через код всеми любимого С++
Помогите пожалуйста, обьяснения приветствуются, заранее всем спасибо.
Миниатюры
Вычислить сумму ряда  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.10.2018, 21:57
Ответы с готовыми решениями:

Вычислить сумму ряда. Где-то напутал знаки или формула ряда не правильная. Посмотрите свежим взглядом.
Привет! Пишу простую контрольную, не могу понять, то ли я где-то со знаками туплю, то ли формула не корректна. Задание: Мое...

Вычислить сумму четных и сумму нечетных чисел натурального ряда от 1 до N
Вычислить сумму четных и сумму нечетных чисел натурального ряда от 1 до N. Не могу найти где ошибка ? #include &lt;iostream&gt; ...

Вычислить сумму четных и сумму нечетных чисел натурального ряда от 1 до n
18 задача 1 лаба После удара о поверхность Земли мяч движется вертикально вверх со скорость 15 м\с. Найдите координату мяча над...

12
 Аватар для Comeodore
1 / 1 / 0
Регистрация: 28.09.2018
Сообщений: 68
24.10.2018, 18:51  [ТС]
up.
0
 Аватар для Comeodore
1 / 1 / 0
Регистрация: 28.09.2018
Сообщений: 68
28.10.2018, 11:35  [ТС]
up..
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
28.10.2018, 11:46
Лучший ответ Сообщение было отмечено Comeodore как решение

Решение

Для данного x сумму можно посчитать как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
s = 0;
f = 1;
a = 1;
k = 1;
d = 1;
while (a > 0.00001) {
  a =  (k*x*x - 1) / (f + 1);
  s += a;
  k ++;
  for(i=d; i<2*d; i++)
    f *= i;
  d * = 2;
}
Псевдокод. Не проверял. Отнеситесь критически, как к идее.
1
 Аватар для Comeodore
1 / 1 / 0
Регистрация: 28.09.2018
Сообщений: 68
28.10.2018, 22:02  [ТС]
Спасибо большое
0
 Аватар для Comeodore
1 / 1 / 0
Регистрация: 28.09.2018
Сообщений: 68
11.11.2018, 00:42  [ТС]
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
#include <iostream>
using namespace std;
int Fact(int N)                           // Инициализация факториала
{
    if (N == 1)
        return 1;
 
    return N * Fact(N - 1);
}
int main()
{
    double s, f, a, k, n, b, x;
    s = 0; // ответ
    f = 1; // факториал
    a = 1; // формула с n=1
    b = 1; // формула для факториала
    k = 1; // коеф. при x*x
    n = 1; // переменная для факториала
    cout << "Enter x:";
    cin >> x; // ввод х
    if (x <= 2 && x >= 0) // условие 0<=x<=2
    {
        while (a > 0.00001) {
            a = (x*x - 1) / 2;
            b = (k*x*x - 1) / (f + 1);
            k++; // k=k+1
            n++; // n=n+1
            f = Fact(2*n);
            s = s + a + b;
        }
        cout << "Answer:" << s << endl;
    }
    else cout << "Check your x. He must be 0<=x<=2" << endl;
    system("pause");
}
Что-то похожее придумал, единственное что не могу допереть, почему а и b должно быть 1, а s - 0, заодно проверьте знатоки, спасибо заранее.
0
 Аватар для Comeodore
1 / 1 / 0
Регистрация: 28.09.2018
Сообщений: 68
11.11.2018, 00:46  [ТС]
Появилась проблема, при x>1, вылазит такая ошибка
Миниатюры
Вычислить сумму ряда  
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
11.11.2018, 10:24
Comeodore, Переполнение стека. Ваш алгоритм никогда не закончит свою работу. a будет только расти и условие while ( a >..) будет выполнено всегда. Однако, из-за того, что вы считаете факториал таким дурацким способом, рекурсивно, какой-то момент происходит переполнение стека.
Очень поучительный пример...
0
 Аватар для Comeodore
1 / 1 / 0
Регистрация: 28.09.2018
Сообщений: 68
12.11.2018, 10:47  [ТС]
Цитата Сообщение от Байт Посмотреть сообщение
Comeodore, Переполнение стека. Ваш алгоритм никогда не закончит свою работу. a будет только расти и условие while ( a >..) будет выполнено всегда. Однако, из-за того, что вы считаете факториал таким дурацким способом, рекурсивно, какой-то момент происходит переполнение стека.
Очень поучительный пример...
Суть в том что используя исчисления факториала через цикл, всеравно при x>1 не считает ничего, прога просто зависает...
Как быть?
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.11.2018, 11:40
Comeodore, Да, все правильно. Стек вы не трогаете. Но это неважно. В вашем коде из поста 6 условие (a > 0.0001) будет выполнено почти всегда. И цикл никогда не кончится. То есть программа зависнет. Что и происходит.
Все потому, что код ваш совсем неправильный. Дайте переменным какие-то значения и попробуйте прокрутить его вручную, на бумажке.
И он мало похож на код, который я привел в посте 4.
0
 Аватар для Comeodore
1 / 1 / 0
Регистрация: 28.09.2018
Сообщений: 68
12.11.2018, 13:28  [ТС]
Уже с другом разобрались) Спасибо за помощь. Позже скину что вышло
0
12.11.2018, 13:37

Не по теме:

На медведя выйду я, На медведя выйду я, Выйду без испуга. Если с другом буду я, Если с другом я, А медведь - без друга...:)

0
 Аватар для Comeodore
1 / 1 / 0
Регистрация: 28.09.2018
Сообщений: 68
12.11.2018, 14:51  [ТС]
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>
using namespace std;
int main()
{
    double f, a, k, n, b1,b2, x;
    int i;
    f = 1; // факториал
    a = 0; // otvet
    k = 1; // коеф. при x*x                    
    n = 1; // переменная для факториала
    b1 = 1; // предпоследний елемент (использую 1 для того чтобы в точности не было 0-0>0.00001)
    b2 = 0; // переменная для рассчета b2
    cout << "Enter x:";
    cin >> x; // ввод х
    if (x <= 2 && x >= 0) // условие 0<=x<=2
    {
        while (abs(b2-b1) > 0.00001) {  // Проверка точности
            b2 = b1; // b2=b1=0 при первой итерации
            a += (k*x*x - 1) / (1 + f);
            b1 = a; // присвоение значения а
            k++; // k=k+1
            n++; // n=n+1
            for (i = 1; i <= n; i++) {
                f *= i;                    
            }                              
            // после проведения первой итерации b2 = b1 (значению первой итерации) b1 = a, значению второй итерации, b2-a - вычисление точности (игра переменными) и т.д.
        }
        cout << "Answer:" << a << endl;
    }
    else cout << "Check your x. He must be 0<=x<=2" << endl;
    system("pause");
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.11.2018, 14:51
Помогаю со студенческими работами здесь

Вычислить сумму ряда
Вычислить: у = 1 !+ 2! + 3! +...+ n! (n&gt;1 ).

Вычислить сумму ряда
Помогите пожалуйста, буду благодарен:cry:

Вычислить сумму ряда
Как решить это? я так понимаю через for но я не знаю как вообще такой пример решается(

Вычислить сумму ряда
Необходимо написать программу, которая вычислит сумму 2:3+3:4+4:5+...+(n−1):n. где &quot;:&quot; там дробь

Вычислить сумму ряда
1−1:2+1:3−...+(−1)^(n+1n)


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru