С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
#1

Сумма ряда чисел - C++

07.10.2012, 12:11. Просмотров 1111. Ответов 11
Метки нет (Все метки)

Помогите разобраться, почему в конце, когда я вывожу if (n==5) cout << w << '\n'; то у меня постоянно одно и тоже значение независимо от n(будь оно равно 5 или 10)?

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
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
 
float w = 0;
 
int function();
 
int main()
{
    int factor, count, n, q, sum;
    double x;
    float y, z;
    double b;
    x = 2;
 
    for(n=1;n<=5;n++) {
    z = pow(-1.0, n);
    y = pow(x, 2*n+1);
    cout << y << '\n' << z << '\n';
 
 
    q = 2*n+1;
    factor=1;
    for(count=1;count<=q;count++) factor= factor*count;
    printf("Faktorial chisla %d raven %d\n", q, factor);
 
    b = z/factor*y;
    cout << b << "\n\n";
 
    w = b+w;
 
    if (n==5) cout << w << '\n';
    }
 
 
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 12:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сумма ряда чисел (C++):

Сумма ряда чисел подсчёты - C++
Когда подсчитываю сумму 1-го, второго, третьего и четвёртого ряда чисел, то всё правильно, а как доходит до 5-го(n=5), то его значение...

Директива #define для нахождения наименьшего из двух чисел. Сумма ряда - C++
помогите решить Даны целые числа а и b. Используя директиву #define для нахождения наименьшего из двух чисел, вычислить значение ...

составить алгоритм инвертирования ряда чисел , т.е. записи всех чисел заданного ряда в обратном порядке - C++
:cry:

Сумма ряда - C++
Написать программу, которая вычисляет частичную сумму ряда. Расчет должен производиться двумя способами: при помощи итерационного цикла,...

Сумма ряда - C++
программа, которая находит сумму ряда e -x = 1 - x + x2/2! +x3/3!... Помогите найти ошибку. Считает не правильно. int main() { ...

Сумма ряда - C++
Извиняюсь за такую глупость) но сильно туплю насчет этого: #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; ...

11
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.10.2012, 12:39 #2
aleksand, а разве так не должно быть?
C++
1
b = z/factor*y;
factor каждый раз все больше, а на чем большее число делишь, тем меньше число получаешь. Получается каждый раз к w прибавляется все меньшее число. Разница у них уже в сотых и тысячных долях.
0
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
07.10.2012, 12:55  [ТС] #3
Цитата Сообщение от BumerangSP Посмотреть сообщение
aleksand, а разве так не должно быть?
C++
1
b = z/factor*y;
factor каждый раз все больше, а на чем большее число делишь, тем меньше число получаешь. Получается каждый раз к w прибавляется все меньшее число. Разница у них уже в сотых и тысячных долях.
Кажется всё правильно я сделал, просто у меня 5-ый элемент суммы ряда(n=5) число равен -5.13067e-005. Как это понять? Нигде прочитать что такое e найти не смог. Что такое -005 в данном числе тоже мне не понятно. Если можно, то расскажите поподробнее про тип float(или double), так как немного не понятно например что значат буквы E к примеру у float(3,4E-38; 3,4E+38)
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.10.2012, 13:06 #4
e - экспонента. -005 - степень. Т.е. 5.13067e-005 все равно что 5.13067-0.005 Так принято в эвм степень числа записывать. Знак "-" в степени говорит о ее отрицательном значении, был бы "+", была бы запись вида "число"*e+"степень".
0
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
07.10.2012, 13:17  [ТС] #5
Цитата Сообщение от BumerangSP Посмотреть сообщение
e - экспонента. -005 - степень. Т.е. 5.13067e-005 все равно что 5.13067-0.005 Так принято в эвм степень числа записывать. Знак "-" в степени говорит о ее отрицательном значении, был бы "+", была бы запись вида "число"*e+"степень".
Я думал что экспонента(exp иногда обозначают) - это e в такой-то степени (как-то лабораторную на днях делал и всё было правильно самое интересное). Может я не правильно понял?
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.10.2012, 13:26 #6
aleksand, экспонента - это и есть ehttp://www.cyberforum.ru/cgi-bin/latex.cgi?\approx2.718. А exp(число) - это экспонента в степени "это число".
0
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
07.10.2012, 13:36  [ТС] #7
Цитата Сообщение от BumerangSP Посмотреть сообщение
aleksand, экспонента - это и есть ehttp://www.cyberforum.ru/cgi-bin/latex.cgi?\approx2.718. А exp(число) - это экспонента в степени "это число".
Всё верно, т.е. число 5.13067e-005 это есть 5.13067 * e-0.005?
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.10.2012, 13:50 #8
e-0.005 - это степень, а не e в степени. Советую почитать "представление чисел в эвм". Там кое-что и про мантиссу написано.
1
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
07.10.2012, 13:58  [ТС] #9
Цитата Сообщение от BumerangSP Посмотреть сообщение
e-0.005 - это степень, а не e в степени. Советую почитать "представление чисел в эвм". Там кое-что и про мантиссу написано.
Понял. Теперь попробовал вычислить это число и у меня вышло -5.13567. Это правильно?
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.10.2012, 14:15 #10
Не совсем. Я чуть выше не до писал кое-что: там не 5.13067-0.005, а 5.13067*10-0.005 И если так по вычислять, то:
http://www.cyberforum.ru/cgi-bin/latex.cgi?{10}^{-0.005}=\frac{1}{{10}^{0.05}}=\frac{1}{{10}^{\frac{5}{100}}}=\frac{1}{\sqrt[100]{{10}^{5}}} http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{\sqrt[100]{{10}^{5}}}http://www.cyberforum.ru/cgi-bin/latex.cgi?\approx 0.891
Теперь это нужно умножить на 5.13067.
0
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
07.10.2012, 14:17  [ТС] #11
Цитата Сообщение от BumerangSP Посмотреть сообщение
Не совсем. Я чуть выше не до писал кое-что: там не 5.13067-0.005, а 5.13067*10-0.005 И если так по вычислять, то:
http://www.cyberforum.ru/cgi-bin/latex.cgi?{10}^{-0.005}=\frac{1}{{10}^{0.05}}=\frac{1}{{10}^{\frac{5}{100}}}=\frac{1}{\sqrt[100]{{10}^{5}}} http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{\sqrt[100]{{10}^{5}}}http://www.cyberforum.ru/cgi-bin/latex.cgi?\approx 0.891
N
Теперь это нужно умножить на 5.13067.
Так, а 1). число 10 откуда взялось? 2). при вычислении на калькуляторе 10-0.005 у меня получилось число 9.995. Это правильно?
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.10.2012, 14:29 #12
1) Я ж написал.
Не совсем. Я чуть выше не до писал кое-что: там не 5.13067-0.005, а 5.13067*10-0.005
Т.е. 5.13067e-005 все равно что 5.13067* 10-0.005
2) Ответ
1
07.10.2012, 14:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2012, 14:29
Привет! Вот еще темы с ответами:

Сумма ряда - C++

Сумма ряда - C++
В общем нужно написать два кода по этим функциям: 2/1 + 2/2 + 2/3 + 2/4+...и 2/1 + 2/2 - 2/3 + 2/4-... Код к первой я написал а вот со...

Сумма ряда - C++
помогите решить такую задачу y=1+x/1!+x^2/2!+...+x^n/n! короче мудрил мудрил в итоге получил так но всеравно неправильно! #include...

Сумма ряда - C++
Здравствуйте! Помогите написать пожалуйста программу... Вычисление суммы первых n членов последовательности. Пользователь вводит...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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