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

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

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

суммирование членов ряда - C++

25.02.2011, 06:56. Просмотров 660. Ответов 8
Метки нет (Все метки)

составить программу, которая суммирует члены ряда S=1^3+3^3+5^3+...+(2*k-1)^3. Накопление прямой суммы прекращается после того, как накопленная сумма превысит заданное значение m. Суммирование проводится дважды: сначала от первого члена к последнему, а затем в обратном порядке. На каждом шаге распечатывается номер слагаемого, а также накопленное и теоретическое значение сумм.

У меня получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream.h>
#include <math.h>
{
int k, m, s, h;
cout <<"введи m";
cin >>m;
cout <<"введи k";
cin >> k;
for (k=1; k<=m; k+=h)
{
s=1;
s=s+(2*k-1);
cout << s;
}
}
это суммирование от первого члена к последнему.
как сделать в обратном порядке я не знаю. и еще, я не совсем понимаю как на каждом шаге распечатывается номер слагаемого, а также накопленное и теоретическое значение сумм.
Помогите, пожалуйста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
25.02.2011, 08:48     суммирование членов ряда #2
Цитата Сообщение от Blin4eg Посмотреть сообщение
У меня получилось:
#include <iostream.h>
#include <math.h>
{
int k, m, s, h;
cout <<"введи m";
cin >>m;
cout <<"введи k";
cin >> k;
for (k=1; k<=m; k+=h)
{
s=1;
s=s+(2*k-1);
cout << s;
}
}
это суммирование от первого члена к последнему.
как сделать в обратном порядке я не знаю. и еще, я не совсем понимаю как на каждом шаге распечатывается номер слагаемого, а также накопленное и теоретическое значение сумм.
Помогите, пожалуйста
C++
1
2
3
4
5
6
7
for (k=1; k<=m; k+=h)
{
    s=1;
    s=s+(2*k-1);
    // k - номер слогаемого, s - накопленное значение суммы.
    cout << k << s;
}
Обратный порядок, делаем все наоборот от последнего к первому
C++
1
2
3
4
5
6
7
for (k=m; k=>1; k-=h)
{
    s=1;
    s=s+(2*k-1);
    // k - номер слогаемого, s - накопленное значение суммы.
    cout << k << s;
}
А что такое "теоретическое значение сумм" я не понял
IrineK
Заблокирован
25.02.2011, 12:11     суммирование членов ряда #3
Вы пытаетесь считать сумму чисел (без степени) с непонятным шагом, а у вас - сумма кубов нечетных чисел с шагом h=2.
Blin4eg
0 / 0 / 0
Регистрация: 25.02.2011
Сообщений: 7
25.02.2011, 14:22  [ТС]     суммирование членов ряда #4
а, точно =) там нужно s в третьей степени поставить s=s+pow((2*k-1),3); =) а шаг единица =)
правильно?
IrineK
Заблокирован
25.02.2011, 14:34     суммирование членов ряда #5
По коварному замыслу автора задачи вы не должны запрашивать k. Запрашивается только m.
При превышении введенного значения m процесс прекращается и отсюда уже возникает k.

Что касается теоретического значения суммы кубов первых k натуральных нечетных чисел,то
S=1^3+3^3+5^3+...+(2*k-1)^3 = 2k^4-k^2
Blin4eg
0 / 0 / 0
Регистрация: 25.02.2011
Сообщений: 7
25.02.2011, 14:37  [ТС]     суммирование членов ряда #6
а как же без k можно посчитать? действительно какой-то коварный замысел =)
IrineK
Заблокирован
25.02.2011, 15:32     суммирование членов ряда #7
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
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"");
    int k,m, sumTheor, sumCur=0;
 
    cout<<"Введите ограничение по сумме: ";
    cin>>m;
 
    cout<<"k\tНак.сумма\tТеор.сумма"<<endl;;
    cout<<"*********************************************************"<<endl;
    for(k=1; sumCur<m; k++)
    {
        sumCur+= (2*k-1)*(2*k-1)*(2*k-1);
        sumTheor=2*k*k*k*k-k*k;
        cout<<k-1<<"\t"<<sumCur<<"\t\t"<<sumTheor<<endl;
    }
 
    cout<<"В обратном порядке"<<endl;
    k--;
    for(; k>1; k--)
    {
        sumCur-= (2*k-1)*(2*k-1)*(2*k-1);
        sumTheor=2*(k-1)*(k-1)*(k-1)*(k-1)-(k-1)*(k-1);
        cout<<k-2<<"\t"<<sumCur<<"\t\t"<<sumTheor<<endl;
    }
    
    return 0;
}
Встроенная степень не использовалась, т.к. работаем с целыми числами.
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
25.02.2011, 16:16     суммирование членов ряда #8
Цитата Сообщение от Blin4eg Посмотреть сообщение
а как же без k можно посчитать? действительно какой-то коварный замысел =)
Имеется ввиду, что не нужно cout <<"введи k"; cin >> k; По условию задачи нижняя граница всегда 1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2011, 16:17     суммирование членов ряда
Еще ссылки по теме:

Найти 10 членов ряда, абсолютную разность между табличной функцией и суммой ряда C++
C++ Суммирование числового ряда до заданного значения
C++ Суммирование числового ряда
Определить: 10 членов ряда; абсолютную разность между табличной функцией и суммой ряда C++

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

Или воспользуйтесь поиском по форуму:
Blin4eg
0 / 0 / 0
Регистрация: 25.02.2011
Сообщений: 7
25.02.2011, 16:17  [ТС]     суммирование членов ряда #9
Точно =) Логично =) спасибо =)
Yandex
Объявления
25.02.2011, 16:17     суммирование членов ряда
Ответ Создать тему
Опции темы

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