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

Класс для операций над комплексными числами (код не работает)

31.03.2018, 12:14. Показов 508. Ответов 5
Метки нет (Все метки)

Создать класс для выполнения операций с комплексными числами. Предусмотреть операции: составление и вычитание; умножения и деления; вычисления модуля; консольный ввод и вывод; инициализацию.
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
class ComplexNumber{
    private:
        int real , imaginary ;
    public:
    ComplexNumber()
    {
        real =0;
        imaginary =0;
     } 
    ComplexNumber(int r, int im );
    void show();
    ComplexNumber plus(ComplexNumber cn);
    ComplexNumber minus(ComplexNumber cn);
    ComplexNumber multiply(ComplexNumber cn);
    ComplexNumber divide(ComplexNumber cn);
};
 
 
ComplexNumber::ComplexNumber(int r, int m){
    real = r;
    imaginary = im;
};
 
 
void ComplexNumber::show(){
    cout << real;
    if(imaginary >= 0) 
    cout << "+";
    cout << imaginary << "i" <<endl;
};
 
 
ComplexNumber ComplexNumber::plus(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real + cn.real;
    temp.imaginary = imaginary + cn.imaginary;
    return temp;
};
 
void ComplexNumber::show(){
    cout << real;
    if(imaginary >= 0) 
    cout << "-";
    cout << imaginary << "i" <<endl;
};
 
ComplexNumber ComplexNumber::minus(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real - cn.real;
    temp.imaginary = imaginary - cn.imaginary;
    return temp;
};
 
void ComplexNumber::show(){
    cout << real;
    if(imaginary >= 0) 
    cout << "*";
    cout << imaginary << "i" <<endl;
};
 
ComplexNumber ComplexNumber::multiply(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real * cn.real;
    temp.imaginary = imaginary * cn.imaginary;
    return temp;
};
 
void ComplexNumber::show(){
    cout << real;
    if(imaginary >= 0) 
    cout << "/";
    cout << imaginary << "i" <<endl;
};
 
ComplexNumber ComplexNumber::divide(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real / cn.real;
    temp.imaginary = imaginary / cn.imaginary;
    return temp;
};
 
int main(){
    int obj1, obj2, obj3, obj4, obj5, obj6;
    cout << "Введите комплексные числа: "<<endl;
    cin>>obj1;
    cout << "Введите комплексные числа: "<<endl;
    cin>>obj2;
    obj3 = obj1.plus(obj2);
    obj4 = obj1.minus(obj2);
    obj5 = obj1.multiply(obj2);
    obj6 = obj1.divide(obj2);
    obj1.show();
    obj2.show();
    obj3.show();
    obj4.show();
    obj5.show();
    obj6.show();
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2018, 12:14
Ответы с готовыми решениями:

Операции над комплексными числами с использованием перегруженных операций
Написать программу, выполняющую операции над комплексными числами, используя перегруженные операции.

Функции для выполнения арифметических операций над комплексными числами
№1 Заданы два комплексных числа (a+ib) и (c+id) и тип операции(+, -, *, /). Создать функции для...

Создание модуля для выполнения операций над комплексными числами
Вообщем такое задание: Реализовать в виде модуля набор подпрограмм для выполнения следующих...

Создать функции для выполнения арифметических операций над комплексными числами
Заданные два комплексных числа (a + ib) и (c + id) и тип операции (Сложение, умножение, вычитание,...

5
1294 / 466 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
31.03.2018, 13:04 2
qazwsx123456789, прокомментировала ошибки.
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
class ComplexNumber {
private:
    int real, imaginary;
public:
    ComplexNumber()
    {
        real = 0;
        imaginary = 0;
    }
    ComplexNumber(int r, int im);
    void show();
    ComplexNumber plus(ComplexNumber cn);
    ComplexNumber minus(ComplexNumber cn);
    ComplexNumber multiply(ComplexNumber cn);
    ComplexNumber divide(ComplexNumber cn);
};
 
 
ComplexNumber::ComplexNumber(int r, int m) {
    real = r;
    imaginary = im; // компилятор говорит что нет такой переменной, следовательно, что-то перепуталось. в данном случае переменная m должна была называться im.
};
 
 
void ComplexNumber::show() {
    cout << real;
    if (imaginary >= 0)
        cout << "+";
    cout << imaginary << "i" << endl;
};
 
 
ComplexNumber ComplexNumber::plus(ComplexNumber cn) {
    ComplexNumber temp;
    temp.real = real + cn.real;
    temp.imaginary = imaginary + cn.imaginary;
    return temp;
};
 
void ComplexNumber::show() {
    cout << real;
    if (imaginary >= 0)
        cout << "-";
    cout << imaginary << "i" << endl;
};
 
ComplexNumber ComplexNumber::minus(ComplexNumber cn) {
    ComplexNumber temp;
    temp.real = real - cn.real;
    temp.imaginary = imaginary - cn.imaginary;
    return temp;
};
 
void ComplexNumber::show() {
    cout << real;
    if (imaginary >= 0)
        cout << "*";
    cout << imaginary << "i" << endl;
};
 
ComplexNumber ComplexNumber::multiply(ComplexNumber cn) {
    ComplexNumber temp;
    temp.real = real * cn.real;
    temp.imaginary = imaginary * cn.imaginary;
    return temp;
};
 
void ComplexNumber::show() {
    cout << real;
    if (imaginary >= 0)
        cout << "/";
    cout << imaginary << "i" << endl;
};
 
ComplexNumber ComplexNumber::divide(ComplexNumber cn) {
    ComplexNumber temp;
    temp.real = real / cn.real;
    temp.imaginary = imaginary / cn.imaginary;
    return temp;
};
 
int main() {
    int obj1, obj2, obj3, obj4, obj5, obj6; // переменные объявлены как int!
    cout << "Введите комплексные числа: " << endl;
    cin >> obj1;
    cout << "Введите комплексные числа: " << endl;
    cin >> obj2;
    obj3 = obj1.plus(obj2); // переменная obj3 была объявлена как int, следовательно, для нее неприменимы функции из ComplexNumber!
    obj4 = obj1.minus(obj2); // далее та же проблема.
    obj5 = obj1.multiply(obj2);
    obj6 = obj1.divide(obj2);
    obj1.show();
    obj2.show();
    obj3.show();
    obj4.show();
    obj5.show();
    obj6.show();
    system("pause");
    return 0;
}
0
0 / 0 / 1
Регистрация: 13.12.2017
Сообщений: 20
31.03.2018, 14:20  [ТС] 3
я чуть-чуть изменил код но он все равно не работает
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
class ComplexNumber{
    private:
        int real , imaginary ;
    public:
    ComplexNumber()
    {
        real =0;
        imaginary =0;
     } 
    ComplexNumber(int r, int im );
    void show();
    ComplexNumber plus(ComplexNumber cn);
    ComplexNumber minus(ComplexNumber cn);
    ComplexNumber multiply(ComplexNumber cn);
    ComplexNumber divide(ComplexNumber cn);
};
 
 
ComplexNumber::ComplexNumber(int r, int im){
    real = r;
    imaginary = im;
};
 
 
void ComplexNumber::show(){
    cout << real;
    if(imaginary >= 0) 
    cout << "+";
    cout << imaginary << "i" <<endl;
};
 
 
ComplexNumber ComplexNumber::plus(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real + cn.real;
    temp.imaginary = imaginary + cn.imaginary;
    return temp;
};
//
//void ComplexNumber::show(){
//  cout << real;
//  if(imaginary >= 0) 
//  cout << "-";
//  cout << imaginary << "i" <<endl;
//};
 
ComplexNumber ComplexNumber::minus(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real - cn.real;
    temp.imaginary = imaginary - cn.imaginary;
    return temp;
};
 
//void ComplexNumber::show(){
//  cout << real;
//  if(imaginary >= 0) 
//  cout << "*";
//  cout << imaginary << "i" <<endl;
//};
 
ComplexNumber ComplexNumber::multiply(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real * cn.real;
    temp.imaginary = imaginary * cn.imaginary;
    return temp;
};
 
//void ComplexNumber::show(){
//  cout << real;
//  if(imaginary >= 0) 
//  cout << "/";
//  cout << imaginary << "i" <<endl;
//};
 
ComplexNumber ComplexNumber::divide(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real / cn.real;
    temp.imaginary = imaginary / cn.imaginary;
    return temp;
};
 
ComplexNumber ComplexNumber::mod (ComplexNumber cn) {
    ComplexNumber temp;
    temp.real = sgrt(pow(real, 2) + pow(cn.real, 2));
    temp.imaginary = sgrt(pow(imaginary, 2) + pow(cn.imaginary, 2));
    return temp;
};
 
int main(){
    ComplexNumber obj1, obj2, obj3, obj4, obj5, obj6, obj7;
    cout << "Введите комплексные числа: "<<endl;
    ComplexNumber >> obj1;
    cout << "Введите комплексные числа: "<<endl;
    ComplexNumber >> obj2;
    obj3 = obj1.plus(obj2);
    obj4 = obj1.minus(obj2);
    obj5 = obj1.multiply(obj2);
    obj6 = obj1.divide(obj2);
    obj7 = obj1.mod(obj2);
    obj1.show();
    obj2.show();
    obj3.show();
    obj4.show();
    obj5.show();
    obj6.show();
    obj7.show();
    system("pause");
    return 0;
}
0
1 / 1 / 0
Регистрация: 31.03.2018
Сообщений: 10
31.03.2018, 15:00 4
если ты хочешь работать с классом, то так
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
#include <iostream>
#include <windows.h>
 
using namespace std;
 
class ComplexNumber {
    friend istream& operator >> (istream &, ComplexNumber &);
    friend ostream& operator << (ostream &, const ComplexNumber &);
private:
    int real, imaginary;
public:
    ComplexNumber (int n, int m) { real = n, imaginary = m; }
    friend ComplexNumber& operator += (ComplexNumber, const ComplexNumber);
    friend ComplexNumber& operator -= (ComplexNumber, const ComplexNumber);
    friend ComplexNumber& operator *= (ComplexNumber, const ComplexNumber);
    friend ComplexNumber& operator /= (ComplexNumber, const ComplexNumber);
};
 
 ostream& operator << (ostream &os, const ComplexNumber &a) {
    os << a.real << ((a.imaginary > 0) ? '+' : ' ') << ((a.imaginary > 0) ? a.imaginary : ' '); return os;
}
 
istream& operator >> (istream &is, ComplexNumber &a) {
    is >> a.real >> a.imaginary; return is;
}
 
ComplexNumber& operator += (ComplexNumber &a, const ComplexNumber &b) {
     a.real += b.real; a.imaginary += b.imaginary; return a;
}
 
ComplexNumber& operator -= (ComplexNumber &a, const ComplexNumber &b) {
     a.real -= b.real; a.imaginary -= b.imaginary; return a;
}
 
ComplexNumber& operator *= (ComplexNumber &a, const ComplexNumber &b) {
     a.real *= b.real; a.imaginary *= b.imaginary; return a;
}
 
ComplexNumber& operator /= (ComplexNumber &a, const ComplexNumber &b) {
     a.real /= b.real; a.imaginary /= b.imaginary; return a;
}
 
int main () {
    ComplexNumber a, b;
    cin >> a, b;
    cout << a << b << (a += b) << (a -= b) << (a *= b) << (a /= b) << endl;
    system ("pause");
    return 0;
}
P.S. писал на скорую руку, могут быть ошибки
0
585 / 817 / 141
Регистрация: 10.08.2015
Сообщений: 4,077
31.03.2018, 16:00 5
сообщество забаненных в гугле?этот комплекс есть в стандартной библиотеке на гитхабе и на этом форуме в таком количестве, что стыдно не найти.
Цитата Сообщение от qazwsx123456789 Посмотреть сообщение
изменил код но он все равно не работает
а должен? ты даже не соизволил создать объект, который возвращаешь!
0
1294 / 466 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
01.04.2018, 07:46 6
qazwsx123456789, прокомментировала ошибки.
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
class ComplexNumber{
    private:
        int real , imaginary ;
    public:
    ComplexNumber()
    {
        real =0;
        imaginary =0;
     } 
    ComplexNumber(int r, int im );
    void show();
    ComplexNumber plus(ComplexNumber cn);
    ComplexNumber minus(ComplexNumber cn);
    ComplexNumber multiply(ComplexNumber cn);
    ComplexNumber divide(ComplexNumber cn);
};
 
 
ComplexNumber::ComplexNumber(int r, int im){
    real = r;
    imaginary = im;
};
 
 
void ComplexNumber::show(){
    cout << real;
    if(imaginary >= 0) 
    cout << "+";
    cout << imaginary << "i" <<endl;
};
 
 
ComplexNumber ComplexNumber::plus(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real + cn.real;
    temp.imaginary = imaginary + cn.imaginary;
    return temp;
};
//
//void ComplexNumber::show(){
//  cout << real;
//  if(imaginary >= 0) 
//  cout << "-";
//  cout << imaginary << "i" <<endl;
//};
 
ComplexNumber ComplexNumber::minus(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real - cn.real;
    temp.imaginary = imaginary - cn.imaginary;
    return temp;
};
 
//void ComplexNumber::show(){
//  cout << real;
//  if(imaginary >= 0) 
//  cout << "*";
//  cout << imaginary << "i" <<endl;
//};
 
ComplexNumber ComplexNumber::multiply(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real * cn.real;
    temp.imaginary = imaginary * cn.imaginary;
    return temp;
};
 
//void ComplexNumber::show(){
//  cout << real;
//  if(imaginary >= 0) 
//  cout << "/";
//  cout << imaginary << "i" <<endl;
//};
 
ComplexNumber ComplexNumber::divide(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real / cn.real;
    temp.imaginary = imaginary / cn.imaginary;
    return temp;
};
 
ComplexNumber ComplexNumber::mod (ComplexNumber cn) { // эта функция не объявлена в классе, нужно объявить
    ComplexNumber temp;
    temp.real = sgrt(pow(real, 2) + pow(cn.real, 2));
    temp.imaginary = sgrt(pow(imaginary, 2) + pow(cn.imaginary, 2));
    return temp;
};
 
int main(){
    ComplexNumber obj1, obj2, obj3, obj4, obj5, obj6, obj7;
    cout << "Введите комплексные числа: "<<endl;
    ComplexNumber >> obj1; // вы вводите... из типа класса в объект? нужно прочитать реальную и воображаемую часть из cin, и изменить эти части в объектах
    cout << "Введите комплексные числа: "<<endl;
    ComplexNumber >> obj2;
    obj3 = obj1.plus(obj2);
    obj4 = obj1.minus(obj2);
    obj5 = obj1.multiply(obj2);
    obj6 = obj1.divide(obj2);
    obj7 = obj1.mod(obj2);
    obj1.show();
    obj2.show();
    obj3.show();
    obj4.show();
    obj5.show();
    obj6.show();
    obj7.show();
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2018, 07:46

Создать функции для выполнения арифметических операций над комплексными числами
Заданы два комплексных числа (a+ib) и (c+id) и тип операции(+, -, *, /). Создать функции для...

Реализовать в виде модуля набор подпрограмм для операций над комплексными числами.
1. Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными...

Реализовать в виде модуля набор подпрограмм для выполнения операций над комплексными числами
1) Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными...

Реализовать в виде класса набор подпрограмм для выполнения операций над комплексными числами
1. сложение; 2. вычитание; 3. умножение; 4. модуль комплексного числа;

Реализовать в виде модуля набор подпрограмм для выполнения операций над комплексными числами
Пожалуйста помогите решить (надеюсь не сложную для вас) задачу про модуль. Реализовать в виде...

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными числами
Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru