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

нужно построить рекурсивный алгоритм - C++

Восстановить пароль Регистрация
 
marko_o1995
-17 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 60
04.07.2013, 19:45     нужно построить рекурсивный алгоритм #1
в общем нужен алгоритм вычисления значение функции exp(x) действительного
аргумента x с точностью ε с использованием рекурсии. Нужен как можно скорее, так как завтра сдавать программу. Старый алгоритм я где-то похерил, а вот отчет по рабочей программе сохранился.
Вложения
Тип файла: docx рекурсивный (5.4).docx (25.8 Кб, 3 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
marko_o1995
-17 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 60
04.07.2013, 20:23  [ТС]     нужно построить рекурсивный алгоритм #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
26
27
28
29
30
31
32
33
34
#include "StdAfx.h"
#include <cmath>
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <iomanip>
#include <cmath>
 
using namespace std;
 
int factorial(int n) {
    if(n==1 || !n) return 1;
    return n* factorial (n-1); }
 
double expn(double x,double old_x, double eps, int n)
{
    if (!x) return 1.;
    double summ;
    if (n==1) summ = 1.;
    else summ = old_x;
    summ += pow(x,n)/(double)factorial(n);
    if (fabs(summ-old_x)>=eps)
        return expn(x, summ, eps, n+1);
    else return summ;
    system ("pause");
    return 0;
}
 
int main()
{
    cout << expn( 2, 9, 0.01, 1) << endl;
    return 0;
    system ("pause");
}
Добавлено через 42 секунды
а пауза, чтобы посмотреть результат выполнения алгоритма (что же он там все же насчитал...), необходима!
hwmlex
 Аватар для hwmlex
41 / 41 / 3
Регистрация: 30.01.2013
Сообщений: 133
04.07.2013, 20:26     нужно построить рекурсивный алгоритм #3
В самом начале #include<conio.h>
В конце перед return 0 : getch();

Кликните здесь для просмотра всего текста
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
#include <cmath>
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <iomanip>
#include <cmath>
#include <conio.h>
 
using namespace std;
 
int factorial(int n) {
    if(n==1 || !n) return 1;
    return n* factorial (n-1); }
 
double expn(double x,double old_x, double eps, int n)
{
    if (!x) return 1.;
    double summ;
    if (n==1) summ = 1.;
    else summ = old_x;
    summ += pow(x,n)/(double)factorial(n);
    if (fabs(summ-old_x)>=eps)
        return expn(x, summ, eps, n+1);
    else return summ;
    system ("pause");
    return 0;
}
 
int main()
{
    cout << expn( 2, 9, 0.01, 1) << endl;
    getch();
    return 0;
}
marko_o1995
-17 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 60
04.07.2013, 20:49  [ТС]     нужно построить рекурсивный алгоритм #4
hwmlex, Скажи, а в основе своей алгоритм правильный?
Значение, которое получается на выходе, реальное?
hwmlex
 Аватар для hwmlex
41 / 41 / 3
Регистрация: 30.01.2013
Сообщений: 133
04.07.2013, 20:55     нужно построить рекурсивный алгоритм #5
Как я понял, в данном алгоритме ты вычисляешь e^2. Если да, то считает у тебя правильно.
marko_o1995
-17 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 60
05.07.2013, 21:23  [ТС]     нужно построить рекурсивный алгоритм #6
Показал я преподавателю этот алгоритм и результат его выполнения. В общем не правильно все. Должно быть вот что: ввод числа с клавиатуры, и "е" возводилось бы в эту степень. Вот так вот. Поможешь исправить?
Yandex
Объявления
05.07.2013, 21:23     нужно построить рекурсивный алгоритм
Ответ Создать тему
Опции темы

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