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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нарисовать блок схему и написать программу которая находила сумму трёхзначных натуральных чисел http://www.cyberforum.ru/cpp-beginners/thread20974.html
1.Нарисовать блок схему и написать программу которая находила сумму трёх значных натуральных чисел. 2.Нарисовать блок схему и написать программу которая из трёх чисел находит максимальное.
C++ сформировать числовой вектор Задана булева матрица B. сформировать числовой вектор С у которого i-й элемент равен номеру левой единицы i-й строки матрицы В http://www.cyberforum.ru/cpp-beginners/thread20963.html
Как считать с текстового файла? C++
Подскажите, пожалуйста, как можно считать предложение из текстового файла. Вот задачка: Написать программу, подсчитывающую число запятых в текстовом файле.
Решение задачи на матрицу с помощью указателей C++
Помогите немного доделать вот такую задачку: Дана целочисленная квадратная матрица размерности nxn. Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. Без указателей я её решила, привожу программу: void main() { srand((unsigned)time(NULL)); //инициализация массива
C++ Погрешность при расчете интеграла. http://www.cyberforum.ru/cpp-beginners/thread20935.html
Помогите пожалуйста, никак не пойму как вписать погрешность в такую незамысловатую программу для вычисления площади между двумя кривыми. Программа считает эту самую площадь, но необходимо еще узнать ее с погрешностью 0,01.Есть метод Рунге,заключающийся в том что сначала интеграл считается с шагом h, а потом 2h. вот формула ((интеграл(h)-интеграл(2h))/3)<погрешность. Понимаю что должен...
C++ Задержка в микроседундах Подскажите,можно ли как-нибудь сделать задержку в 30-40 микросекунд?:help: подробнее

Показать сообщение отдельно
hamlet-ss6
0 / 0 / 0
Регистрация: 20.12.2008
Сообщений: 10
16.01.2009, 15:08  [ТС]     Класс комплексных чисел
ISergey,
Привет,спасибо ОГРОМНОЕ за советы!!!!я вот еще раз программу переписал-повнимательней,но почему она НЕ выполняет действия с комплексными числами??
Посмотри,пожалуйста!!
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
#include <iostream>
#include <сmath>
 
class Complex // класс комплексных чисел
{
double re, im; // целая и мнимая части
 
// создаем конструкторы 
public:
 
Complex() {};
 
Complex (double r) // конструктор по умолчанию
{
re = r; 
im = 0;
}
 
Complex (double r, double i) // конструктор по умолчанию
{
re = r; 
im = i;
} 
 
Complex (Complex &c) // конструктор копирования
{
re = c.re; 
im = c.im;
}
 
~Complex() {}
 
float abs() // Модуль комплексного числа
{
return sqrt(re * re - im * im);
} 
 
Complex & operator = (Complex &c) // перегрузка оператора присваивания
{
re = c.re;
im = c.im;
 
return (*this);
}
 
Complex Complex::operator + (Complex &c) // перегрузка оператора сложения
{
Complex temp;
 
temp.re = re + c.re;
temp.im = im + c.re;
 
return temp;
}
 
Complex Complex::operator - (Complex &c) // перегрузка оператора вычитания
{
Complex temp;
 
temp.re = re - c.re;
temp.im = im - c.re;
 
return temp;
}
 
Complex Complex::operator * (Complex &c) // перегрузка оператора умножения
{
Complex temp;
 
temp.re = re*c.re;
temp.im = re*c.im;
 
return temp;
}
 
Complex Complex::operator / (Complex &c) // перегрузка оператора деления
{
Complex temp;
 
double r = c.re * c.re + c.im * c.im;
temp.re = (re * c.re + im * c.im) / r;
temp.re = (im * c.re - re * c.im) / r;
 
return temp;
} 
 
friend ostream &operator<<(ostream &, Complex &); // перегрузка оператора <<
friend istream &operator>>(istream &, Complex &); // перегрузка оператора >>
 
};
 
ostream &operator<<(ostream &out, complex &c)
{
out << "(" << c.re << ") + I (" << c.im << "\n";
 
return out;
}
 
istream &operator>>(istream &in, Complex &c)
{
in >> c.re >> c.im;
 
return in;
}
 
int main()
{
Complex value1(5,2);
Complex value2(3,-3);
 
cout << value1 << " " << value2 << endl;
 
cout << value1 + value2 << endl;
 
cout << value1 - value2 << endl;
 
cout << value1 * value2 << endl;
 
cout << value1 / value2 << endl; 
 
value1 = value2;
 
cout << value1 << " = " << value2 << endl;
 
return 0;
}
Добавлено через 2 минуты 59 секунд
Mulat,
Привет,спасибо ОГРОМНОЕ за советы!!!!объясни пожалуйста,почему не печатает она результаты операций с числами???
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
#include <iostream>
#include <сmath>
 
class Complex // класс комплексных чисел
{
double re, im; // целая и мнимая части
 
// создаем конструкторы 
public:
 
Complex() {};
 
Complex (double r) // конструктор по умолчанию
{
re = r; 
im = 0;
}
 
Complex (double r, double i) // конструктор по умолчанию
{
re = r; 
im = i;
} 
 
Complex (Complex &c) // конструктор копирования
{
re = c.re; 
im = c.im;
}
 
~Complex() {}
 
float abs() // Модуль комплексного числа
{
return sqrt(re * re - im * im);
} 
 
Complex & operator = (Complex &c) // перегрузка оператора присваивания
{
re = c.re;
im = c.im;
 
return (*this);
}
 
Complex Complex::operator + (Complex &c) // перегрузка оператора сложения
{
Complex temp;
 
temp.re = re + c.re;
temp.im = im + c.re;
 
return temp;
}
 
Complex Complex::operator - (Complex &c) // перегрузка оператора вычитания
{
Complex temp;
 
temp.re = re - c.re;
temp.im = im - c.re;
 
return temp;
}
 
Complex Complex::operator * (Complex &c) // перегрузка оператора умножения
{
Complex temp;
 
temp.re = re*c.re;
temp.im = re*c.im;
 
return temp;
}
 
Complex Complex::operator / (Complex &c) // перегрузка оператора деления
{
Complex temp;
 
double r = c.re * c.re + c.im * c.im;
temp.re = (re * c.re + im * c.im) / r;
temp.re = (im * c.re - re * c.im) / r;
 
return temp;
} 
 
friend ostream &operator<<(ostream &, Complex &); // перегрузка оператора <<
friend istream &operator>>(istream &, Complex &); // перегрузка оператора >>
 
};
 
ostream &operator<<(ostream &out, complex &c)
{
out << "(" << c.re << ") + I (" << c.im << "\n";
 
return out;
}
 
istream &operator>>(istream &in, Complex &c)
{
in >> c.re >> c.im;
 
return in;
}
 
int main()
{
Complex value1(5,2);
Complex value2(3,-3);
 
cout << value1 << " " << value2 << endl;
 
cout << value1 + value2 << endl;
 
cout << value1 - value2 << endl;
 
cout << value1 * value2 << endl;
 
cout << value1 / value2 << endl; 
 
value1 = value2;
 
cout << value1 << " = " << value2 << endl;
 
return 0;
}
 
Текущее время: 09:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru