Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
8 / 8 / 0
Регистрация: 07.07.2010
Сообщений: 154
1

Вычисления функции

25.09.2010, 19:13. Показов 981. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите написать программу.

Задание: оформить в виде программы вычисления функции
e ^ x = 1 + x + x ^ 2 / 2! + x ^ 3 / 3 !+...
и сравнить полученный результат со значением, полученным при использовании стандартной функции EXP (X), для х = 2.3; 8.5.
Как я понял, тут нужно использовать рекурсию и процедуры?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2010, 19:13
Ответы с готовыми решениями:

Составить блок-схему, алгоритм вычисления и программу для вычисления значения кусочно заданной функции
помогите решить

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

Написать блок-схему и программу вычисления функции на заданном промежутке и построить график этой функции
написать блок-схему и программу вычисления функции на за- данном промежутке с шагом 0.2 и...

Составить функции вычисления определённого интеграла от функции f(x)
Составить функции вычисления определённого интеграла от функции f(x) с использованием формул...

17
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2010, 19:22 2
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
#include <cstdio>
#include <cmath>
 
using std::printf;
 
#define PRECISION 1e-4
 
//exp(x) = 1 + x + (x^2)/2!+(x^3)/3!....+(x^n)/n!+.....
 
double _exp( const double x ){
    double dVal, dTemp;
    int nStep = 1;
    for( dVal = 1.0, dTemp = 1.0; dTemp >= PRECISION ; ++nStep ){
        dTemp *= x/nStep;
        dVal += dTemp;
    }
    return dVal;
}
 
int main(){
    double x;
    printf( "exp(%f) = %3.10f, prec = %3.10f\n", x = 2.3, _exp( x ), _exp( x) - std::exp( x ) );
    printf( "exp(%f) = %3.10f, prec = %3.10f\n", x = 8.5, _exp( x ), _exp( x) - std::exp( x ) );
    return 0;
}
точность можно увеличить уменьшая PRECISION
1
8 / 8 / 0
Регистрация: 07.07.2010
Сообщений: 154
25.09.2010, 21:06  [ТС] 3
alex_x_x, при выполнении ничего не происходит, копмилятор dev c++
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
25.09.2010, 21:17 4
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 <cstdio>
#include <cmath>
 
using std::printf;
 
#define PRECISION 1e-4
 
//exp(x) = 1 + x + (x^2)/2!+(x^3)/3!....+(x^n)/n!+.....
 
double _exp( const double x ){
    double dVal, dTemp;
    int nStep = 1;
    for( dVal = 1.0, dTemp = 1.0; dTemp >= PRECISION ; ++nStep ){
        dTemp *= x/nStep;
        dVal += dTemp;
    }
    return dVal;
}
 
int main(){
    double x = 2.3;
    printf( "exp(%f) = %3.10f, prec = %3.10f\n", x, _exp( x ), _exp( x) - std::exp( x ) );
    x = 8.5;
    printf( "exp(%f) = %3.10f, prec = %3.10f\n", x, _exp( x ), _exp( x) - std::exp( x ) );
    system("pause");
    return 0;
}
gcc вроде должен компилировать

http://codepad.org/Gs68wVQ1
1
8 / 8 / 0
Регистрация: 07.07.2010
Сообщений: 154
04.10.2010, 15:30  [ТС] 5
как сделать это задание при помощи рекурсии?
0
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
04.10.2010, 15:32 6
а это она и есть
0
8 / 8 / 0
Регистрация: 07.07.2010
Сообщений: 154
04.10.2010, 16:03  [ТС] 7
тогда можно другим способом, используя функции?
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.10.2010, 16:22 8
KuKu, Интересно, где тут углядели рекурсию...
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.10.2010, 17:10 9
silent_1991,
Цитата Сообщение от KuKu Посмотреть сообщение
а это она и есть
Я вот об этом.
0
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
04.10.2010, 17:18 10
dTemp *= x/nStep;
вуаля.
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.10.2010, 17:19 11
KuKu, Ага. А теперь в гугл, дабы узнать что такое рекурсия.
Рекурсия
В программировании рекурсия — вызов функции (процедуры) из неё же самой, непосредственно (простая рекурсия) или через другие функции (сложная рекурсия), например, функция A вызывает функцию B, а функция B — функцию A. Количество вложенных вызовов функции или процедуры называется глубиной рекурсии.
0
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
04.10.2010, 17:24 12
Реку́рсия — метод определения класса объектов или методов предварительным заданием одного или нескольких (обычно простых) его базовых случаев или методов, а затем заданием на их основе правила построения определяемого класса или метода, ссылающегося прямо или косвенно на эти базовые случаи.
- википедия. Не вижу противоречий: задание начальных значений и правила.
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
04.10.2010, 17:25 13
KuKu, Вообщем, это сомнительно можно назвать рекурсией. А точнее все же нельзя. В таком случае.

C++
1
2
3
4
5
int a=5;
for(int i=1, j=1; i<n, j<n; ++i,++j)
{
     a*=i*j;
}
Тоже рекурсия?
0
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
04.10.2010, 17:27 14
Рекурсия - это понятие вообще, а не только програмированния. Но тут возможно вы правы, что надо именно это.
0
Эксперт С++
5056 / 3116 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
04.10.2010, 17:27 15
KuKu,
Или, если по этому определению, где ссылка (прямо или косвенно) на базовый случай (в данном случае на саму функцию)?
0
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
04.10.2010, 17:29 16
Цитата Сообщение от Lavroff Посмотреть сообщение
KuKu, Эм... Вы тут видите, чтобы функция вызывала сама себя? Или другая функция вызывала ее n раз?
Я вижу вывод новых значений из старых.

Добавлено через 1 минуту
KuKu,
Или, если по этому определению, где ссылка (прямо или косвенно) на базовый случай (в данном случае на саму функцию)?
n+1-ый член ссылается на n-ый - это косвенная ссылка(рано или поздно до первого доссылается).

Ладно-ладно...говорю может тут и надо то, о чем вы говорите
0
Эксперт С++
5056 / 3116 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
04.10.2010, 17:35 17
Думаю, ТС имел ввиду далеко не математическую рекурсию, а именно рекурсию в программировании - т.е. вызов функцией прямо или косвенно самой себя.

Добавлено через 3 минуты

Не по теме:

KuKu,
Только не говорите, пожалуйста, что это я хочу блеснуть знаниями из википедии. Я и задолго до неё знал о существовании математической рекурсии))) Не в обиду.

0
8 / 8 / 0
Регистрация: 07.07.2010
Сообщений: 154
04.10.2010, 20:31  [ТС] 18
так можно по другому как-то написать? без рекурсии.
0
04.10.2010, 20:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2010, 20:31
Помогаю со студенческими работами здесь

вычисления функции y=f(x)
Создать проект программы на алгоритмическом языке С++, вычисления функции y=f(x)

Программа вычисления функции...
Всем привет=) Подскажите пож. где ошибка... Вот мое решение: #include &quot;stdafx.h&quot; #include...

Программа вычисления функции на C++
Пожалуйста помогите с решением задачи (Вариант 5) В случае если не видно пример...

Вычисления значений функции
Помогите пожалуйста с задачей,требуется на писать,отладить и протестировать прогу,обеспечивающая...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru