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

расчет значения e^x(x это степень) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Получение числа из переменной http://www.cyberforum.ru/cpp-beginners/thread633393.html
К примеру: int s=326; Как можно получить числа 3,2 и 6? ( Я делаю небольшую игру и мне необходимо это для вывода очков )
C++ Битовое ИЛИ. Пердача нескольких констант в один параметр функции здраствуйте! иногда в примерах програмного кода замечаю, что несколько констант передаются в один парметр функции с помщью битового или. так, например, изучая понемногу d3dx9 решил всетаки спросить в чем хитрость такого механизма? думаю посмотрев пару строчек кода ниже вы поймете о чем я. bool Display(float timeDelta){ if(Device){ Device->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,... http://www.cyberforum.ru/cpp-beginners/thread633374.html
Считывание символов из строки C++
Здравствуйте, форумчане. Можете подсказать, каким образом можно считать из RichTextBox символы до какого либо знака-разделителя, записать их в переменную и потом, после этого знака, тоже считать и записать в другую переменную? Т.е. чтобы строка "9995882323//babai@mail" читалась как номер, записанный в одной переменной, и почта, в другой переменной, а потом считывание переходило бы на новую...
C++ delete this
Какие последствия могут быть при выполнении команды delete this; из какой-нибудь функции члена?
C++ visual c++, как сделать форму невидемой http://www.cyberforum.ru/cpp-beginners/thread633369.html
помогите, как в Visual Studio 2005 С++, сделать программу невидимой?
C++ Почему, С++ ругается на контруктор? Почему у меня С++, ругается на контруктор вектора - vec3(const vec3 v) ??? typedef struct vec3 { union { float v; struct { float x; подробнее

Показать сообщение отдельно
Catstail
Модератор
 Аватар для Catstail
21492 / 10245 / 1670
Регистрация: 12.02.2012
Сообщений: 17,129
05.08.2012, 22:10     расчет значения e^x(x это степень)
Твоя программа "не лечится"... Давай разберемся: ex - это сумма бесконечного ряда вот такого вида: 1+x+x2/2+x3/(2*3)+x4/(2*3*4)+...

n-й член этой бесконечной суммы это xn/(n!) n!=1*2*3*...*n - произведение чисел от 1 до n.

Что значит "сумма бесконечного ряда"? Абсолютно точно ее вычислить нельзя (т.к. нужно будет бесконечное время). Но если ряд сходится, то можно остановить суммирование, когда очередной член ряда не станет меньше наперед заданного числа. Это и будет результатом.

Теперь о том, как считать. Обрати внимание,что если разделить (n+1)-й член ряда на n-й, то получится
x/(n+1). Теперь правильный программный код:

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 "iostream.h"
#include "math.h"
 
double exp_(double x,double eps) // расчет e^x с точностью eps
{
    double s=1;  // сумма ряда
    double n=1; // нач. n
    double a=1; // первый член ряда
    while (1)     // беск. цикл
    {
        a=a*x/n;  // вычисляем следующий член ряда
        if (fabs(a) <= eps) break; // если точность достигнута - выход
        s=s+a;     // прибавим к сумме очередной член
        n++;        // увеличим n
    }
    return s; // когда вышли из цикла - вернем результат
}
 
int main(int argc, char* argv[])
{
    double x;
        cout.precision(13); // точность при печати
    cout << "Enter x "; // просим ввести x
    cin >> x;              // вводим
    cout << "exp(" << x << ")=" << exp_(x,1e-14) << endl; // вычисляем и печатаем
    return 0;
}
 
Текущее время: 00:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru