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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
marko_o1995
-17 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 60
#1

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

14.06.2013, 19:44. Просмотров 385. Ответов 8
Метки нет (Все метки)

задание было такое (я не раз обращался с ним уже): построить алгоритм вычисления значения аргумента exp(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
#include <cmath>
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <Windows.h>
#include <iomanip>
#include <cmath>
 
using namespace std;
void main(){};
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;
    
    
}
...
Проблема в следующем: выполняется алгоритм, но после выполнения программа не останавливается, а сразу же вылетает. Не знаю, как исправить. И вот еще что: неужели значение будет всегда вычисляться одно и то же (просто я не имею полного представления о вычислении аргумента данной функции), не нужен ли ввод какого-либо значения с клавиатуры? Поможете разобраться и исправить проблемы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2013, 19:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос рекурсивный алгоритм (C++):

Рекурсивный алгоритм - C++
Даны натуральные числа &quot;N&quot; и &quot;M&quot; надо решить с помощью с++ не могу переставить с этим кодом с++ #include &lt;stdio.h&gt; #include...

Рекурсивный алгоритм - C++
помогите пожалуйста Представить в рекурсивный алгоритм Цикл пока ((proverka=1) и (k&gt;1) ) Если A &gt; A То Начало ...

Рекурсивный алгоритм - C++
помогите плиз представить в рекурсивный алгоритм Массив A proverka=1 Цикл для i:=1 до 10 делать: Ввод A Конец цикл ...

Рекурсивный алгоритм F - C++
Привет всем! Помогите пожалуйста как решается данная функция, если F = 6. Вот код программы: #include &lt;iostream&gt; int F(int n)...

рекурсивный алгоритм - C++
В общем я уже намучился с этим заданием... Дело такое, алгоритм составлен, но не совсем такой, какой нужен #include &lt;iostream&gt; #include...

рекурсивный алгоритм - C++
Уважаемые программисты! Есть задача: разработать рекурсивный алгоритм на с++ для нахождения самого длинного несамопересекающегося пути коня...

8
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
14.06.2013, 21:36 #2
Цитата Сообщение от marko_o1995 Посмотреть сообщение
Проблема в следующем
Проблема в том, что main у Вас пустой.
0
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
14.06.2013, 21:39 #3
уберите вот это
C++
1
2
system ("pause");
return 0;
в main и перед ним добавьте вызов функции expon
0
marko_o1995
-17 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 60
14.06.2013, 22:00  [ТС] #4
убрал-исправил: ничего не помогло((( можете свой код рабочий с исправлениями показать?
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
14.06.2013, 22:03 #5
marko_o1995, main пустая. Ваша программа ничего не делает. То, что Вы определили функции, это еще не значит, что они будут вызываться.
0
marko_o1995
-17 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 60
14.06.2013, 22:07  [ТС] #6
так что мне в main записать то?
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
14.06.2013, 22:09 #7
marko_o1995,
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
#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;
};
За адекватность формул ответственности не несу
0
marko_o1995
-17 / 0 / 0
Регистрация: 17.04.2013
Сообщений: 60
14.06.2013, 22:54  [ТС] #8
один фиг вылетает...
0
ValeryS
Модератор
6653 / 5062 / 470
Регистрация: 14.02.2011
Сообщений: 16,926
14.06.2013, 23:00 #9
Цитата Сообщение от marko_o1995 Посмотреть сообщение
один фиг вылетает...
задержку то поставь
C++
1
2
3
4
5
6
int main()
{
    cout << expn( 2, 9, 0.01, 1) << endl;
system ("pause");
    return 0;
};
или в консоли запускай
а то у тебя прога отработала и консоль закрылась
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2013, 23:00
Привет! Вот еще темы с ответами:

Рекурсивный алгоритм - C++
Доброго времени суток #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; float rec(int x,int n) { if (n != 0) { ...

Рекурсивный алгоритм перестановок - C++
Подскажите, почему не происходит замусоривания массива used, в котором хранятся данные об использованных элементах начальной строки, и...

Рекурсивный алгоритм Дейкстры - C++
Добрый день, необходима помощь в алгоритме trains - матрица, сохраняющая длины ребер stations - количество графов start - граф, с...

нужно построить рекурсивный алгоритм - C++
в общем нужен алгоритм вычисления значение функции exp(x) действительного аргумента x с точностью ε с использованием рекурсии. Нужен как...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
14.06.2013, 23:00
Ответ Создать тему
Опции темы

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