Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 783
#1

Программа для вычисления значения e^x - C++

03.09.2015, 15:03. Просмотров 843. Ответов 12
Метки нет (Все метки)

Написать программу, которая вычисляет значение e^x.

e^x = 1 + x / 1! + x^2 / 2! + x ^ 3 / 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
29
30
31
32
33
34
35
double e;  // need to find it
    double total = 0;
    int items; // how many items of number?
    int i = 0;
    int f;
    int n = 1;
    int ex;
 
    cout << "Enter number of items: ";
    cin >> items; // for example, 5
 
    while (items)
    {
        f = n;
 
        if (n == 0 || n == 1)
        {
            f = 1;
        }
        else
        {
            while (i < n - 1)
            {
                f *= (n - ++i);
            }
        }
 
        total += 1.0 / f;
        n++;
        i = 0;
 
        items--;
    }
 
    e = 1 + total;

http://www.cyberforum.ru/cpp-beginners/thread176119.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2015, 15:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Программа для вычисления значения e^x (C++):

Программа для вычисления значения
Здравствуйте, помогите решить задачу. Напишите программу, которая вычисляет...

Программа для вычисления значения функции С++
Написать программу, которая по введенному значению аргумента вычисляет значение...

Программа для вычисления значения функции.
Вычислить значения функций (см.рис.) при заданном m, если х изменяется от a...

Программа для вычисления значения выражения
Пытался написать программу для вычисления вот такого выражения An = sin(1–sin(2...

программа для вычисления значения функции y
для заданного значения x у= если x&lt;-3 то y= √1 - x² если 1,5&lt;x-3, то y= в...

12
S_el
2133 / 1661 / 354
Регистрация: 15.12.2013
Сообщений: 6,595
03.09.2015, 15:48 #2
Цитата Сообщение от kalonord Посмотреть сообщение
Я от математики абсолютно далёк.
А от поиска в интернете/форуме?

Цитата Сообщение от kalonord Посмотреть сообщение
Как это решается?
По формуле. Вычисляются члены ряда и суммируются.
1
Arik100
59 / 60 / 37
Регистрация: 24.07.2015
Сообщений: 224
03.09.2015, 15:53 #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
#include <cstdlib>
#include <iostream>
#include <math.h>
 
using namespace std;
 
int Factorial(int x);
 
int main()
{
  int x;
  double rezultat = 1;
  cout << "Enter x: ";
  cin >> x;
  for (int i = 1; i < x ; i++)
      rezultat += (pow(x, i)) / (Factorial(i));
cout << "Result e^x: " << rezultat;
cin >> x;
}
int Factorial(int x)
{
  return (x == 1 ? x : x * Factorial(x - 1));
}
1
kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 783
03.09.2015, 16:32  [ТС] #4
Цитата Сообщение от S_el Посмотреть сообщение
А от поиска в интернете/форуме?
На самом деле, есть немного. Создать тему как-то проще. Но буду работать над этим.
Цитата Сообщение от S_el Посмотреть сообщение
По формуле. Вычисляются члены ряда и суммируются.
Понятно, что они буду суммироваться. Тут, кстати, написали код, пользователь вводит значение x
Я думал, что от пользователя вообще ничего не надо.

Добавлено через 15 минут
Ну помимо кол-ва одночленов.
0
Kuzia domovenok
2209 / 1978 / 441
Регистрация: 25.03.2012
Сообщений: 6,944
Записей в блоге: 1
03.09.2015, 16:43 #5
for (int i = 1; i < x ; i++)
а почему именно от 1 до x? А ты не предполагал, что икс не обязательно целое?
Цитата Сообщение от Arik100 Посмотреть сообщение
rezultat += (pow(x, i)) / (Factorial(i));
зачем давать такие вредные советы? Ты вообще задумывался о порядке сложности данного алгоритма?
C++
1
2
3
4
5
6
7
8
9
10
double delta=1.0;
double eps=1e-4;
double rezultat = 0;
int n=0;
while(abs(delta)>eps)
{
  rezultat += delta;
  delta*=(x/n);
  n++;
}
1
Arik100
59 / 60 / 37
Регистрация: 24.07.2015
Сообщений: 224
03.09.2015, 16:58 #6
а почему именно от 1 до x? А ты не предполагал, что икс не обязательно целое?
Может и не целое.... тогда если е = 0, 056, как записать это в формулу - e^x = 1 + x / 1! + x^2 / 2! + x ^ 3 / 3! + … ?

зачем давать такие вредные советы? Ты вообще задумывался о порядке сложности данного алгоритма?
можно с этого места по подробнее? А то троллингом попахивает

Добавлено через 1 минуту
извиняюсь... внимательно посмотрел на формулу... моя ошибка
0
Kuzia domovenok
2209 / 1978 / 441
Регистрация: 25.03.2012
Сообщений: 6,944
Записей в блоге: 1
03.09.2015, 19:07 #7
Цитата Сообщение от Arik100 Посмотреть сообщение
Может и не целое.... тогда если е = 0, 056, как записать это в формулу - e^x = 1 + x / 1! + x^2 / 2! + x ^ 3 / 3! + … ?
это где ты нашёл такое е, не равное 2.7, дюже интересно? А число пи в твоей вселенной скольки равно?
1
kalonord
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 783
04.09.2015, 01:56  [ТС] #8
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
это где ты нашёл такое е, не равное 2.7, дюже интересно?
Действительно. Не знал, что это некая константа.
0
S_el
04.09.2015, 02:04
  #9

Не по теме:

kalonord, можете почитать:
https://ru.wikipedia.org/wiki/E_%28%D1%87%D0%B8%D1%81%D0%BB%D0%BE%29

0
kalonord
04.09.2015, 03:26  [ТС]
  #10

Не по теме:

Цитата Сообщение от S_el Посмотреть сообщение
можете почитать:
Да, спасибо, я уже прочитал.

0
Arik100
59 / 60 / 37
Регистрация: 24.07.2015
Сообщений: 224
04.09.2015, 07:59 #11
Цитата Сообщение от Kuzia domovenok
это где ты нашёл такое е, не равное 2.7, дюже интересно? А число пи в твоей вселенной скольки равно?
Я вроде извинился... или этого мало?
0
_Ivana
04.09.2015, 21:46
  #12

Не по теме:

Например лично я думал, что ты извинился за обвинения в троллинге и понял какую чушь ты написал в коде, поэтому и не написал. А оказывается, все еще хуже

0
Nishen
456 / 279 / 154
Регистрация: 26.02.2015
Сообщений: 1,321
Завершенные тесты: 2
04.09.2015, 21:58 #13
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
double delta=1.0;
double eps=1e-4;
double rezultat = 0;
int n=0;
while(abs(delta)>eps)
{
* rezultat += delta;
* delta*=(x/n);
* n++;
}
Разве можно делить на ноль? О_О
0
04.09.2015, 21:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.09.2015, 21:58
Привет! Вот еще темы с решениями:

Программа для вычисления косинуса выдает неправильные значения
Уважаемые форумчане, подскажите где затаилась ошибка. Надо вычислить косинус по...

Программа для вычисления значения выражения. sin(num1)+nem2...
Помогите написать программу для решения следующей задачи: На входе два...

Написать процедуру для вычисления коэффициентов и функцию для вычисления значения многочлена
Задано многочлен {P}_{n}(x) степени n&lt;=100, коэффициенты которого содержатся в...

Составить блок-схему, алгоритм вычисления и программу для вычисления значения кусочно заданной функции
помогите пожалуйста =) заранее благодарен =) П.5.19.Правил Запрещено...


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

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

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