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

Класс комплексных чисел - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ string segmentation fault http://www.cyberforum.ru/cpp-beginners/thread812352.html
Доброго времени суток! Подскажите в чем может быть проблема? string str; int main(int argc, char const *argv) { str.assign(argv); printf("%s", str.c_str()); //<- segmentation fault }
C++ Преобразование массива Прошу помочь в решении данной задачи: преобразовать данный 1-мерный массив в 2-хмерный так, чтобы в I столбце 2-хмерного массива располагались эл-ты одномерного (без повторов), во II столбце - кол-во их повторов, в III - точки входа (позиция, на которой впервые встречается данный элемент) пример прилагается http://www.cyberforum.ru/cpp-beginners/thread812341.html
C++ Распознание каждого элемента масива
Здравствуйте. Как можно разложить массив, чтобы в дальнейшем работать с каждым элементом (нужно будет переставлять местами) #include <iostream> using namespace std; void masiv() { int m; cout << "Please enter arrey size; "; cin >> m;
По а и полиному PN(x) получить полиномы QN+1(x)=(x-a)*PN(x) и RN+1(x)=(x+a)*PN(x) C++
По а и полиному PN(x) получить полиномы QN+1(x)=(x-a)*PN(x) и RN+1(x)=(x+a)*PN(x). помогите этот ад решить о_О( ну или мне это так кажется) Добавлено через 21 час 34 минуты Up.
C++ heap corruption detected http://www.cyberforum.ru/cpp-beginners/thread812300.html
имеется класс CStr - строка, в нём есть конструктор CStr CStr::CStr(char *s) { length = 0; while (s) length++; str = new char; for (int i = 0; i < length; i++) str = s; str = '\0';
C++ Переставить строки матрицы по не убыванию наименьших элементов Помогите пожалуйста написать программу: 1. Дана вещественная матрица D (7х9). Упорядочить (переставить) строки матрицы по не убыванию наименьших элементов строк Уже несколько часов провел в попытках, не сообразил. подробнее

Показать сообщение отдельно
Черный ворон
129 / 123 / 6
Регистрация: 31.01.2012
Сообщений: 435
19.03.2013, 02:05     Класс комплексных чисел
не совсем понял разницу между мнимыми и комплексными.
вот набросок класса, еще не закончен но уже есть большинство из того, что Вас интересует
Кликните здесь для просмотра всего текста
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
#include <iostream.h>
#include <math.h>
class Complex{
   private:
        double Re;
        double Im;
 
   public:
        Complex(void) {
                Re=Im=0.0;
        }
 
        Complex(double re){
                Re=re;
                Im=0.0;
        }
 
        Complex(double re, double im){
                Re=re;
                Im=im;
        }
 
        Complex(Complex& c){
                Re=c.Re;
                Im=c.Im;
        }
 
        ~Complex(void) {}
 
        double abs(){
                return sqrt(Re*Re+Im*Im);
        }
 
        double argDeg(){
                if ((Re==0.0)&&(Im==0.0)) return 0.0;
                if (Re==0.0){
                        if (Im>0) return 90.0; else return -90.0;}
                else
                        if (Re>0.0) return atan(Im/Re)*180/M_PI;
                else
                        {if (Im>=0) return 180+atan(Im/Re)*180/M_PI;
                        else return -180+atan(Im/Re)*180/M_PI;}
 
        }
 
        double argRad(){
                if ((Re==0.0)&&(Im==0.0)) return 0.0;
                if (Re==0.0){
                        if (Im>0) return M_PI/2; else return -M_PI/2;}
                else
                        if (Re>0.0) return atan(Im/Re);
                else
                        {if (Im>=0) return M_PI+atan(Im/Re);
                        else return -M_PI+atan(Im/Re);}
        }
 
 
 
        Complex& pow(int n){
                static Complex temp;
                temp.Re=(std::pow(abs(),n))*(std::cos(n*argRad()));
                temp.Im=(std::pow(abs(),n))*(std::sin(n*argRad()));
                return temp;
        }
 
 
        Complex& radikal(int n, int k){
                static Complex temp;
                if ((Re==0)&&(Im==0)) return temp;
                temp.Re=std::pow(abs(),1/n)*cos((argRad()+2*M_PI*(k))/n);
                temp.Im=std::pow(abs(),1/n)*sin((argRad()+2*M_PI*(k))/n);
                return temp;
        }
 
        Complex& conjugate(){
                Im=-Im;
                return *this;
        }
 
        Complex& operator - (){
                static Complex temp(-Re, -Im);
                return temp;
        }
 
        Complex& operator + (){
                static Complex temp(Re, Im);
                return temp;
        }
 
        Complex& operator = (Complex& c) {
                Re=c.Re;
                Im=c.Im;
                return *this;
        }
 
 
 
        friend bool operator == (const Complex& c1, const Complex& c2){
                if ((c1.Re==c2.Re)&&(c1.Im==c2.Im)) return true;
                else return false;
        }
 
        friend bool operator != (const Complex& c1, const Complex& c2){
                if ((c1.Re!=c2.Re)||(c1.Im!=c2.Im)) return true;
                else return false;
        }
 
        friend Complex& operator + (Complex& left, Complex& right){
                static Complex tempAdd;
                tempAdd.Re=left.Re+right.Re;
                tempAdd.Im=left.Im+right.Im;
                return tempAdd;
        }
 
        Complex& operator +=(Complex& c){
                return *this=*this+c;
        }
 
        friend Complex& operator - (Complex& left, Complex& right){
                static Complex tempSub;
                tempSub.Re=left.Re-right.Re;
                tempSub.Im=left.Im-right.Im;
                return tempSub;
        }
 
        Complex& operator -=(Complex& c){
                return *this=*this-c;
        }
 
        friend Complex& operator * (Complex& left, Complex& right){
                static Complex tempMult;
                tempMult.Re=left.Re*right.Re-left.Im*right.Im;
                tempMult.Im=left.Im*right.Re+left.Re*right.Im;
                return tempMult;
        }
 
        Complex& operator *=(Complex& c){
                return *this=*this * c;
        }
 
        friend Complex& operator / (Complex& left, Complex& right){
                static Complex tempDiv;
                tempDiv.Re=(left.Re*right.Re+left.Im*right.Im)/(left.Im*left.Im+right.Im*right.Im);
                tempDiv.Im=(left.Im*right.Re-left.Re*right.Im)/(left.Im*left.Im+right.Im*right.Im);
                return tempDiv;
        }
 
        Complex& operator /=(Complex& c){
                return *this=*this / c;
        }
 
        friend ostream& operator<<(ostream& s, Complex& c){
                if (c.Im>0.0) s<<c.Re<<"+"<<c.Im<<"i";
                else if (c.Im==0.0) s<<c.Re;
                else s<<c.Re<<c.Im<<"i";
                return s;
        }
 
        friend istream& operator>>(istream& s, Complex& c){
                s>>c.Re;
                s>>c.Im;
                return s;
        }
 
        Complex& log(){
                static Complex temp,t1,t2(0,1);
                temp.Re=std::log(abs());
                t1.Re=argRad();
                t1.Im=0;
                t1*=t2;
                temp.Re+=t1.Re;
                temp.Im+=t1.Im;
                return temp;
        }
 
        Complex& pow(Complex& n, int k){
                static Complex temp,t1,t2;
                t1=log();
                t1.Im+=2*M_PI*k;
                t2=n*t1;
                temp.Re=std::exp(t2.Re)*std::cos(t2.Im);
                temp.Im=std::exp(t2.Re)*std::sin(t2.Im);
                return temp;
        }
 
 
 
};
 
Текущее время: 05:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru