Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 04.04.2018
Сообщений: 3
1

Рекурсия

04.04.2018, 17:55. Показов 783. Ответов 1
Метки нет (Все метки)

Помогите. Не могу понять в чем проблема.
Вот Задание :
В каждом варианте задания дана математическая функция и результат её разложения в ряд. Подобрать значения начального и конечного значения х, а также шага его изменения исходя из области определения математической функции и области сходимости ряда. Результатом работы программы должна быть таблица, состоящая из столбцов. В первом должны находится значения аргумента, во втором – значение функции в данной точке х, в третьем – сумма значений ряда (без применения рекурсии), в четвертом - сумма значений ряда (с применением рекурсии), в пятом – количество вызовов рекурсивной функции. При построении таблицы необходимо использовать указатели на функции. Завершать процесс суммирования членов ряда необходимо до момента когда разница между значением математической функции и суммой членов её разложения меньше эпсилон (вводится с клавиатуры).
При наборе заданий возможны ошибки. В таких случаях производить вычисления до момента, когда n – ый член последовательности меньше эпсилон, или просто ограничить значение n.
In(1+x)=x-x^2/2+x^3/3-…+(-1)^(n-1) x^n/n+⋯,xϵ[-1;1]


Вот код:
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#define _USE_MATH_DEFINES
#include<iostream>
#include<cmath>
#include<iomanip>
#include <stdio.h>
#include <windows.h>
 
using namespace std;
 
 
typedef double (*s1)(double, int, int, double, double, int& );
typedef double (*s2)(double,double);
double rez(s1 factorial, s2 sum, double xn, double r, double x);
double factorial(double xn, int i, int fact, double r, double sum, int& j);
double sum(double xn, double r);
 
 
 
int main()
{   
    double xn=-1.0,xk=1.0,shx;
    float x=0.1;
    double r=0.0001;
    setlocale(LC_ALL, "Russian");
    
    cout << "[ " << xn << " ; " << xk << " ]" << " øàã - " << x << " ïîãðåøíîñòü Å = " << r << endl;
    cout << "_________________________________________________________________" << endl;
    cout << "|      x      |log(x+1)|  áåç ðåê. |   ñ ðåê.  |âûç.ô-è| " << endl;
    cout << "=================================================================" << endl;
    
    for(xn;xn<=xk;xn+=x)
    {   
 
        rez(factorial, sum, xn, r, x);
    
    }
    
 
    system("pause");
    return 0;
}
 
double factorial( double xn, int i, int fact, double r, double sum,int& j){
    
    sum = pow(xn, i)/xn;
    if (sum < r)
        return 0;
    
        int k = i, z = i;
    k++;
    z += 1;
    
    return sum +factorial(xn  , i + 1, fact * z * k, r, sum, ++j);
}
double sum(double xn, double r)
{
    int m , f=-1;
    double sum ,du;
 
    for (sum = 0., du = xn, m = 1 , f*=-1; fabs(du) > r; m++) {
        sum += du;
        
 
        du = (f*du *  xn) / m;
    }
    return sum;
 
}
double rez(s1 factorial, s2 sum, double xn, double r, double x)
{
    int qt = 0;
    double y = 0, k = 0;
 
    y = log(xn+1);
    
    
    
    cout << "|" << setw(13) << xn << "|" << setw(15) << y << "|" << setw(11) << sum(xn, r) << "|" << setw(11) << factorial(xn, 1, 1, r, 1, qt);
    cout << "|" << setw(7) << qt << "|" << endl;
    return 1;
    }
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2018, 17:55
Ответы с готовыми решениями:

Рекурсия. Рекурсия с мемоизацией
Добрый день. Задача такова: У нас есть массив для длины строки (пусть будет M=20). У нас есть некие...

Рекурсия
Не совсем разобрался с заданиями помогите!

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

рекурсия B c++
пожалуйста помогите,почему не работает? дело в рекурсии,функция func1 вызывается много раз.. ...

1
3418 / 2777 / 752
Регистрация: 25.03.2012
Сообщений: 10,099
Записей в блоге: 1
04.04.2018, 18:05 2
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2018, 18:05

Рекурсия
Помогите с рекурсией

Рекурсия
Мне нужно что бы в рекурсии делал от большого на маленький. Вот сам код: #include &lt;iostream&gt; ...

Рекурсия
Привет. Только что узнал,что такое рекурсия и понял как она работает,но написать участок кода с...

Рекурсия
Кто знает как написать программу на C ++, которая рекурсивно генерирует следующий времена этой...


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

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

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