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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Перегрузить http://www.cyberforum.ru/cpp-beginners/thread713949.html
#include <conio> #include <iostream> #include <stdio> using namespace std; class summa { private: double first; int second; public: summa() {};
C++ Двумерные массивы. Найти произведение элементов, расположенных между первым отрицательным числом и последним четным числом в матрице вычислить произведение элементов, расположенных между первым отрицательным числом и последним четным числом в матрице. какое условие задать(туплю)? потом все это преобразую в файлы)Правила форума п. 3.4: Избегайте использования слишком большого количества смайлов в сообщениях в тематических разделах форума, а также "кричащего" выделения текста, в том числе CAPS LOCK. Правила форума п. 5.4:... http://www.cyberforum.ru/cpp-beginners/thread713944.html
Нужно определить два класса C++
SOS! Прошу вашей помощи. 1) Определить класс, объектами которого являются отношения на множестве целых чисел {0,1, 2, …, n-1}.Определить конструктор, аргументами которого служат либо массив пар, принадлежащих отношению, либо тройка чисел с плавающей точкой. В последнем случае отношение инициируется как состоящее из (x,y), для которых ax+by+c ≤ 0. Определить операции дополнения, пересечения,...
C++ Почему не работает?
Нужно добавить инструментальную панель в окно вот как я делаю TBBUTTON tbb; for(int i = 0; i < 4; i++) ZeroMemory( &tbb, sizeof( TBBUTTON ) ); tbb.iBitmap = 0; tbb.idCommand = ID_GOCALC; tbb.fsState = TBSTATE_ENABLED; tbb.iBitmap = 1; ...
C++ Одномерный массив. Создать массив Х суммы среднеарифметического элементов массива А с каждым элементом массива А http://www.cyberforum.ru/cpp-beginners/thread713935.html
Дан массив А.Создать массив Х суммы среднеарифметического элементов массива А с каждым элементом массива А.
C++ Как возвратить созданый динамический двухмерный массив из функции в main? Надо из функции mtx возвртить матрицу в главную функцию. Матрица создаеться и заполняеться в mtx. Подскажите как правильно его возвратить.#include <iostream> #include <stdio.h> #include <math.h> #include <conio.h> using namespace std; int** mtx(int, int); int main(){ FILE* f; f=fopen("D:\\o33ik.txt","r"); подробнее

Показать сообщение отдельно
activnaya
 Аватар для activnaya
255 / 45 / 2
Регистрация: 24.11.2012
Сообщений: 466
30.11.2012, 20:55     программа с рекурсивной функцией
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;
}
 
Текущее время: 17:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru