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

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

Войти
Регистрация
Восстановить пароль
 
Yark0s
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 37
#1

Разработка рекурсивных алгоритмов для вычисления функции - C++

18.02.2014, 23:52. Просмотров 306. Ответов 5
Метки нет (Все метки)

Сразу к сути!!! Я должен сделать рекурсию функции y=x+3-e^-x. Что то y2 не выводит, ошибок нету!
Вот код программы:
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
37
38
39
40
41
42
43
44
45
46
47
48
49
//---------------------------------------------------------------------------
#pragma hdrstop
#include <tchar.h>
//---------------------------------------------------------------------------
#pragma argsused
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
int f1(double x, double eps)
  {
   int k = 1;
   double c = 1;
   do
   {
      c =c*x;
      k++;
    }
    while (c/k>eps);       //возможно ошибка здесь или в цыкле 
    return k;
  }
 
double f(double x, int n, int k=1)
{
   if(k==n)
    return (1.0-x/k);
   else
    return (1.0-x/k*f(x,n,k));       //возможно ошибка здесь 
}
 
int _tmain(int argc, _TCHAR* argv[])
{  cout<<"X= ";
   double x;
   cin>>x;
   int n=f1(x,0.00001);
   double y1=x+3-exp(-x);
   printf("%.8f\n",y1);
   int t1=time(NULL);
   double y2=x+3-f(x,n);
   int t2=time(NULL);
   printf("%.8f\n",y2);
   cout<<t2-t1<<"\n";
   getch();
   return 0;
 
}
 
 
//---------------------------------------------------------------------------
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2014, 23:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разработка рекурсивных алгоритмов для вычисления функции (C++):

Рекурсивные алгоритмы. Примеры рекурсивных алгоритмов - C++
Пом-гите решить, заранее благодарен.)) Билет 10 1 Рекурсивные алгоритмы. Примеры рекурсивных алгоритмов. 2 Решить задачу: ...

Изменить программу под тему: Разработка алгоритмов содержащих функции - C++
#include &lt;string&gt; #include &lt;locale.h&gt; #include &lt;iostream&gt; using namespace std; int f(double r1, double r2, string type) { ...

Разработка параллельных алгоритмов для решения СЛАУ - C++
Пишу курсовую на тему &quot;Разработка параллельных алгоритмов для решения СЛАУ&quot; У кого-нибудь есть что либо &quot;работающее&quot; по этой теме...

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

Разработка алгоритмов ветвления - C++
Разработка алгоритмов ветвления. Вот сам код: #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double...

Разработка программы для вычисления объема геометрических фигур; вычисление результата 'непростой' формулы - C++
Доброго вам времени суток, господа. Прошу помощи в написании пары легких программок на языке СИ. Задания таковы: Составить...

5
Eldies
90 / 81 / 28
Регистрация: 06.02.2014
Сообщений: 120
19.02.2014, 00:36 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
строчка 16
C++
1
c =c*x/k;
строчка 28
C++
1
return (1.0-x/k*f(x,n,k+1));
1
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
19.02.2014, 01:02 #3
Зачем тут рекурсия? Ты степень экспоненты рекурсивно пытаешься посчитать что ли?
0
Yark0s
0 / 0 / 0
Регистрация: 18.12.2013
Сообщений: 37
19.02.2014, 01:57  [ТС] #4
А про комментировать можешь???

Добавлено через 52 секунды
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Зачем тут рекурсия? Ты степень экспоненты рекурсивно пытаешься посчитать что ли?
Это что бы понять как считает машина!
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
19.02.2014, 02:49 #5
Зачем тут рекурсия? Ты степень экспоненты рекурсивно пытаешься посчитать что ли?
0
Eldies
90 / 81 / 28
Регистрация: 06.02.2014
Сообщений: 120
19.02.2014, 09:37 #6
Здесь считается http://www.cyberforum.ru/cgi-bin/latex.cgi?e^{-x} рекурсивно с помощью разложения в ряд Маклорена.

C++
1
int f1(double x, double eps)
эта функция рассчитывает необходимое число членов ряда, путем сравнения очередного члена ряда с eps.
http://www.cyberforum.ru/cgi-bin/latex.cgi?c_k = \frac{x^k}{k!} =  \frac{x}{k}\cdot  c_{k-1}


C++
1
double f(double x, int n, int k=1)
эта функция считает http://www.cyberforum.ru/cgi-bin/latex.cgi?e^{-x}, как сумму первых n членов ряда Маклорена.

C++
1
return (1.0-x/k*f(x,n,k));
не работает, потому что вызов функцией самой себя с теми же самыми параметрами - никогда не заканчивающаяся рекурсия
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2014, 09:37
Привет! Вот еще темы с ответами:

Разработка и отладка алгоритмов и программ - C++
Есть задание лабы: Разработать шаблон класса реализующего работу с матрицами переменной размерности. Тип эле- мента задается как...

Разработка и отладка циклических алгоритмов и программ - C++
Значение аргумента x изменяется от a до b с шагом h. Для каждого x найти значения функции Y(x), суммы S(x) и |Y(x)-S(x)| и вывести в виде...

Разработка и отладка циклических алгоритмов и программ - C++
Значение аргумента x изменяется от a до b с шагом h. Для каждого x найти значения функции Y(x), суммы S(x) и |Y(x)-S(x)| и вывести в виде...

Разработка алгоритмов поиска в массивов [Задача] - C++
Всем привет. Кто поможет написать задачку? Дано натуральное число n. Выяснить, сколько положительных элементов содержит массив А...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
19.02.2014, 09:37
Ответ Создать тему
Опции темы

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