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

е в степени x - C++

Восстановить пароль Регистрация
 
ITdocer
0 / 0 / 0
Регистрация: 19.10.2011
Сообщений: 14
12.01.2014, 05:19     е в степени x #1
я пытаюсь написать программу для вычисления е в степени x используя формулу изложенную ниже
+ нужно задавать количество цифр после точки
в чем моя ошибка?
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
#include <iostream>
#include <conio.h>
 
using namespace std;
double s(double);
double f(double);
int main()
{
    double e = 1, razmer = 0, x = 0;
    cin >> x >> razmer;
    for (float i = 1; i < razmer; i++)
    {
            e += (s(x)) / (f(i));
    }
    cout << e << endl;
    _getch();
    return 0;
}
double s(double step)
{
    double stepin = 1;
    for (float i = 1; i <= step; i++)
    {
        stepin *= step;
    }
    return stepin;
}
double f(double fact)
{
    double factor = 1;
    for (float i = 1; i <= fact; i++)
    {
        factor *= i;
    }
    return factor;
}
Миниатюры
е в степени x  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2014, 05:19     е в степени x
Посмотрите здесь:

C++ n>=a в степени k
C++ 3 во 2 степени .
Число в степени -1 C++
C++ Поднесение к степени
C++ Написать программу, вычисляющую X в степени Y и Y в степени X
Написать программу, которая делит числа в 5 степени на число в 14 степени и выводит ответ в 5 степени. Найти ошибку C++
C++ Экспонента в степени
Три в степени k C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
14004 / 8835 / 1234
Регистрация: 24.12.2010
Сообщений: 16,014
12.01.2014, 10:05     е в степени x #2
Цитата Сообщение от ITdocer Посмотреть сообщение
в чем моя ошибка?
А в чем она проявляется?
Но вообще-то код чудовищно не эффективен. Обрати внимание, что при вычислении факториала ты каждый раз пересчитываешь уже подсчитанное. Тоже самое при вычислении степени.
Кроме того i не надо объявлять как float. Может привести к неточностям на границе. Напиши int i, компилятор сам разберется.
И, конечно, при выбранном тобой алгоритме, факториал (да и xn тоже) довольно быстро переполнит даже double
tron737
8 / 8 / 4
Регистрация: 29.12.2013
Сообщений: 27
12.01.2014, 12:22     е в степени x #3
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
#include "iostream"
#include "math.h"
using namespace std;
 
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;
}
Yandex
Объявления
12.01.2014, 12:22     е в степени x
Ответ Создать тему
Опции темы

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