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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
07.10.2012, 12:11     Сумма ряда чисел #1
Помогите разобраться, почему в конце, когда я вывожу 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 12:11     Сумма ряда чисел
Посмотрите здесь:

C++ сумма ряда
С++ Сумма ряда. C++
C++ Сумма ряда
Директива #define для нахождения наименьшего из двух чисел. Сумма ряда C++
Сумма ряда чисел подсчёты C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.10.2012, 12:39     Сумма ряда чисел #2
aleksand, а разве так не должно быть?
C++
1
b = z/factor*y;
factor каждый раз все больше, а на чем большее число делишь, тем меньше число получаешь. Получается каждый раз к w прибавляется все меньшее число. Разница у них уже в сотых и тысячных долях.
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)
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.10.2012, 13:06     Сумма ряда чисел #4
e - экспонента. -005 - степень. Т.е. 5.13067e-005 все равно что 5.13067-0.005 Так принято в эвм степень числа записывать. Знак "-" в степени говорит о ее отрицательном значении, был бы "+", была бы запись вида "число"*e+"степень".
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 в такой-то степени (как-то лабораторную на днях делал и всё было правильно самое интересное). Может я не правильно понял?
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 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(число) - это экспонента в степени "это число".
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?
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
07.10.2012, 13:50     Сумма ряда чисел #8
e-0.005 - это степень, а не e в степени. Советую почитать "представление чисел в эвм". Там кое-что и про мантиссу написано.
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
07.10.2012, 13:58  [ТС]     Сумма ряда чисел #9
Цитата Сообщение от BumerangSP Посмотреть сообщение
e-0.005 - это степень, а не e в степени. Советую почитать "представление чисел в эвм". Там кое-что и про мантиссу написано.
Понял. Теперь попробовал вычислить это число и у меня вышло -5.13567. Это правильно?
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 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.
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. Это правильно?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2012, 14:29     Сумма ряда чисел
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 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) Ответ
Yandex
Объявления
07.10.2012, 14:29     Сумма ряда чисел
Ответ Создать тему
Опции темы

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