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

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

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

программа с рекурсивной функцией - C++

29.11.2012, 23:28. Просмотров 494. Ответов 9
Метки нет (Все метки)

написать программу на языке с++
решить задачу не используя операторы цикла
написать программу с рекурсивной функцией вычисляющей
Миниатюры
программа с рекурсивной функцией  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2012, 23:28     программа с рекурсивной функцией
Посмотрите здесь:

Программа с рекурсивной функцией - C++
Друзья, помогите пожалуйста написать вот такую программу в Dev с++ Сколькими способами можно отобрать команду в составе 5 человек из 8...

Программа с рекурсивной функцией (расставляет между заданными шестью цифрами знаки операций) - C++
Написать программу с рекурсивной функцией, которая расставляет между заданными шестью цифрами знаки операций: сложения, вычитания,...

Создать структуру с рекурсивной функцией - C++
Создать структуру в которой ввод и вывод информации будет осуществлятся с помощью рекурсивной функции

Рекурсия,заполнение массива рекурсивной функцией. - C++
привет! рекурсия....это хуже всего!!! (( А рекурсивная функция, которая заполняет массив целых чисел значениями, вводимыми пользователем,...

Нужно количество цифр с рекурсивной функцией - C++
Не могу найти ошибку. Надо найти кол-во цифр введённого числа с помощью рекурсивной функции. #include <iostream> using namespace...

Разница между рекурсивной функцией и обычной - C++
Как можно посчитать разницу между рекурсивной функцией и обычной? Там как то можно время работы функций высчитывать, как это сделать? Какие...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.11.2012, 23:50     программа с рекурсивной функцией #2
Формула корявая. Подправте.
Bhbyr
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 29
29.11.2012, 23:51  [ТС]     программа с рекурсивной функцией #3
всё правильно
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
29.11.2012, 23:58     программа с рекурсивной функцией #4
Bhbyr, ну значит мне показалась
Вот на скорую руку, как пример
C
1
2
3
4
5
6
7
double fun(unsigned n)
{
    static int i;
 
    return i == n ? sqrt(n) : sqrt(++i + fun(n));
}
// Можно без static реализовать, но мне лень
Bhbyr
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 29
30.11.2012, 00:00  [ТС]     программа с рекурсивной функцией #5
пожалуйста
go, помоги напиши полностью ((
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
30.11.2012, 00:05     программа с рекурсивной функцией #6
Цитата Сообщение от Bhbyr Посмотреть сообщение
пожалуйста go, помоги напиши полностью ((
Тогда задание полностью скажите. Откуда берется n. Из файла, передается при запуске в командной строке, или во время рантайма передается? А может в коде задается?
activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
30.11.2012, 00:06     программа с рекурсивной функцией #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cmath>
 
long double func(int n)
{
    if (n < 0)
        return -1.L;
    else
        return n ? sqrtl((long double) n + func(n - 1)) : 0.L;
}
 
int main()
{
    long double retval;
    if ( (retval = func(10)) != -1.L)
        std::cout << retval << '\n';
    else
        std::cerr << "error: value less of zero\n";
 
    std::cin.get();
    return 0;
}
Bhbyr
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 29
30.11.2012, 00:19  [ТС]     программа с рекурсивной функцией #8
go, не знаю просто пример такой написан и всё ничего больше не сказанно
Bhbyr
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 29
30.11.2012, 18:57  [ТС]     программа с рекурсивной функцией #9
правильно написала программу или нет
условие:
решить задачу не используя операторы цикла
написать программу с рекурсивной функцией вычисляющей



решение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cmath>
 
long double func(int n)
{
    if (n < 0)
        return -1.L;
    else
        return n ? sqrtl((long double) n + func(n - 1)) : 0.L;
}
 
int main()
{
    long double retval;
    if ( (retval = func(10)) != -1.L)
        std::cout << retval << '\n';
    else
        std::cerr << "error: value less of zero\n";
 
    std::cin.get();
    re
turn 0;
}



условие задачи вот внизу
Миниатюры
программа с рекурсивной функцией  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 20:55     программа с рекурсивной функцией
Еще ссылки по теме:

Разобраться с рекурсивной функцией обхода бинарного дерева - C++
Люди, помогите разобраться с рекурсивной функцией обхода бинарного дерева. Бьюсь головой об стену, не могу понять как она работает. ...

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

После вызова рекурсивной функции программа перестаёт работать - C++
int mat,size,x=1,y, a=0, b=1; void mtt(int mat, int a, int b); int main(){ cin&gt;&gt;size; mtt(mat,a,b); cout&lt;&lt;&quot;JJ&quot;;//НЕ...

Программа с виртуальной функцией - C++
Сгенерируйте абстрактный класс типа фигура, создайте производные от него классы типа треугольник, шестиугольник. В классах должны быть...


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

Или воспользуйтесь поиском по форуму:
activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
30.11.2012, 20:55     программа с рекурсивной функцией #10
Bhbyr, мне кажется что я неверно написала решение. Моя функция вычисляет http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{n + \sqrt{n - 1 +...+ \sqrt{3 + \sqrt{2 + \sqrt{1}} } }} а это не соответствует ТЗ. Сейчас посмотрим как переделать.

Добавлено через 12 минут
я поняла как ее переделать, сейчас перепишу.

Добавлено через 1 час 6 минут
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include <iostream>
#include <cmath>
 
#define MAX_DEPTH (100)
#define DEFAULT_DEPTH (10)
 
class shit
{
    private:
        const int depth;// максимальная глубина рекурсии
        int beg, end;
        enum std_err
        {
            BAD_BEG = 1,
            BAD_END = 2,
            BEG_LARG = 4,
            BAD_DIFF = 8
        };
        bool good;
    public:
        shit() : depth(MAX_DEPTH), beg(1), end(1) {};
        shit(int __n) : depth(MAX_DEPTH), beg(1), end(__n), good(true)
        {
            if (this->end < this->beg)
            {
                this->end = DEFAULT_DEPTH;
                std::cerr << "bad value. variable 'end' set as DEFAULT_DEPTH\n";
            }
        }
 
        shit(int __m, int __n) : depth(MAX_DEPTH), beg(__m), end(__n), good(true)
        {
            this->exeption();
        }
        ~shit() {};
 
        void exeption()
        {
            int exept = 0;
 
            if (this->beg < 0)
                exept |= this->BAD_BEG;
            if (this->end < 0)
                exept |= this->BAD_END;
            if (this->beg > this->end)
                exept |= this->BEG_LARG;
            if (this->end - this->beg > this->depth)
                exept |= this->BAD_DIFF;
            if (this->call_exept(exept))
                this->good = false;
            else
                this->good = true;
        }
 
        bool call_exept(int num)
        {
            bool ret = false;
 
            if (num & BAD_BEG) {
                std::cerr << "bad begin value\n";
                ret = true;
            }
            if (num & BAD_END) {
                std::cerr << "bad end value\n";
                ret = true;
            }
            if (num & BEG_LARG) {
                std::cerr << "begin value is lergest end value\n";
                ret = true;
            }
            if (num & BAD_DIFF) {
                std::cerr << "very large recursion depth\n";
                ret = true;
            }
            return ret;
        };
 
        void set()
        {
            this->beg = 1;
            this->end =10;
            this->good = true;
        };
 
        void set(int __n)
        {
            this->end = __n;
            this->exeption();
        };
 
        void set(int __m, int __n)
        {
            this->beg = __m;
            this->end = __n;
            this->exeption();
        }
 
        int get_beg() {return this->beg;}
        int get_end() {return this->end;}
 
        long double rec_foo(int __beg, int __end)
        {
            if (this->good)
            {
                return __beg < __end ?
                    sqrtl((long double) __beg + this->rec_foo(__beg + 1, __end)) :
                    sqrtl(__end);
            }
            else
            {
                std::cerr << "bad object\n";
                return -1.L;
            }
        };
};
 
int main()
{
    shit ob1, ob2(5), ob3(3, 55);
 
    std::cout << "I'm ob2, and my recursion are: ";
    std::cout << ob2.rec_foo(ob2.get_beg(), ob2.get_end()) << '\n';
    std::cout << "I'm ob3, and my recursion are: ";
    std::cout << ob3.rec_foo(ob3.get_beg(), ob3.get_end()) << '\n';
 
    ob1.set(2, 70);
 
    std::cout << "I'm ob1, and my recursion are: ";
    std::cout << ob1.rec_foo(ob1.get_beg(), ob1.get_end()) << '\n';
 
 
    return 0;
}
Yandex
Объявления
30.11.2012, 20:55     программа с рекурсивной функцией
Ответ Создать тему
Опции темы

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