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

Нужно исправить ошибки в классе комплексных чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Компоновщик о ликовка программы это одно и тоже? http://www.cyberforum.ru/cpp-beginners/thread912135.html
??????
C++ Перевод с Pascal на С++ Ребят, переведите кому не сложно, буду благодарна. program z1; var n,s,i : integer; begin write('n = '); readln(n); s:=0; for i:=1 to n do s:=s+i*i; http://www.cyberforum.ru/cpp-beginners/thread912123.html
C++ Номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов
Вот я написал програмний код но немогу сделать вот это задание : номер элемента массива ближайшего к среднеарифметическому его значению и разницу элементов массива расположенных между первым отрицательное и вторым положительным элементом. Помогите мне дописать эти две просьби в даную програму! #include "stdafx.h" #include <iostream> #include <conio.h> #include "time.h"
C++ Удаление пробелов из строки TCHAR
Нужно удалить все пробелы. MFC не сработал. CString::Remove(_T(' ')); CString::Replace(_T(" "), _T("")); std также. TCHAR id_str; id.GetWindowText(id_str, 10); tstring s = id_str; s.erase(std::remove(s.begin(), s.end(), _T(' ')), s.end()); Почему?
C++ Функции. Распознавание символов http://www.cyberforum.ru/cpp-beginners/thread912101.html
Распознавание символов. Написать функцию, которая возвращает 1, если символ, полученный функцией в качестве аргумента, является гласной буквой английского алфавита, и ноль – в противном случае. Примечание: Функция, которую требуется написать в задании, не должна самостоятельно осуществлять ввод или вывод каких-либо значений, а также не должна прерывать выполнение программы. Ввод всех исходных...
C++ Сформировать стек по файлу чисел. Удалить из стека узлы с минимальным значением информационного поля Сформировать стек по файлу чисел. Удалить из стека узлы с минимальным значением информационного поля. Использовать дополнительный стек. подробнее

Показать сообщение отдельно
Adamaras
0 / 0 / 0
Регистрация: 17.06.2013
Сообщений: 21

Нужно исправить ошибки в классе комплексных чисел - C++

26.06.2013, 02:50. Просмотров 277. Ответов 2
Метки (Все метки)

Мой мозг породил нечто ужасное к ночи, и оно не желает работать. Задание из рода "Бред обыкновенный".
Надо исправить ошибки, а голова не варит, как...
Это класс комплексных чисел с перегрузками и дружественными функциями. Вот в этом и чепуха.
Уже не сплю неделю из-за проблем со средами, сегодня уже накалякал эту чепуху. Разработка ведётся в Eclipse, и он ругается на определённые строки, сейчас даже скажу, на какие.
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
#include <iostream>
#include <math.h>
using namespace std;
 
class complex {
    double re, im;
    public:
        complex() {}
        complex (double re1, double im1): re(re1), im(im1) {}
        ~complex() {}
        friend complex sum (complex c,complex c2);
        complex operator + (complex c) {
            complex result;
            result.re = re + c.re;
            result.im = im + c.im;
            return result;
        }
        friend complex operator - (complex c, complex c2);
        friend complex proizvedenie (complex c,complex c2);
        complex operator * (complex c) {
            complex result;
            result.re = re * c.re - im * c.im;
            result.im = im * c.re + re * c.im;
            return result;
        }
        friend complex operator / (complex c, complex c2);
        complex conjuncted() const {
            return complex (re, -im);
        }
        double modul() const {
            return sqrt(re * re + im * im);
        }
        friend ostream & operator << (ostream & out, complex &c);
        friend istream & operator >> (istream & in, complex &c);
        bool operator < (complex c)
        {
            return(modul() < c.modul()) ? true:false;
        }
        bool operator > (complex c)
        {
            return(modul() > c.modul()) ? true:false;
        }
        bool operator ==(complex c) {
            return(re == c.re && im == c.im) ? true:false;
        }
        bool operator != (complex c) {
            return *this == c ? false:true;
        }
        complex operator ++() {
            ++re;
            return *this;
        }
        complex operator --() {
            --re;
            return *this;
        }
        complex operator ++(int) {
            complex re1 = *this;
            ++re;
            return re1;
        }
        complex operator --(int) {
            complex re1 = *this;
            --re;
            return re1;
        }
    };
    complex sum(complex c, complex c2) {
        complex result;
        result.re = c2.re + c.re;
        result.im = c2.im + c.im;
        return result;
    }
    complex proizvedenie(complex c, complex c2) {
        complex result;
        result.re = c2.re * c.re - c2.im * c.im;
        result.im = c2.im * c.re + c2.re * c.im;
        return result;
    }
    complex operator -(complex c, complex c2) {
        complex result;
        result.re = c2.re - c.re;
        result.im = c2.im - c.im;
        return result;
    }
    complex operator / (complex c, complex c2) {
        complex result;
        result.re = (c2.re * c.re + c2.im * c.im)/(c.re * c.re + c.im * c.im);
        result.im = (c2.im * c.re - c2.re * c.im)/(c.re * c.re + c.im * c.im);
        return result;
    }
    ostream & operator <<(ostream &out, complex c) {
        if (c.im == 0) out << endl << c.re << endl;
        else if (c.re == 0) out << endl << c.im << "i" << endl;
        else if (c.im > 0) out << endl << c.re << "+" << c.im << "i" << endl;
        else out << endl << c.re << c.im << "i" << endl;
        return out;
    }
    istream & operator >> (istream &in, complex &c) {
        cout << "Enter a real part of the value: ";
        in >> c.re;
        cout << "Enter an imaginary part of the value: ";
        in >> c.im;
        return in;
    }
    int main() {
        complex z, x, y;
        double q, w;
        int number;
        do {
            cout << "==============" << endl;
            cout << "     MENU" << endl;
            cout << "==============" << endl;
            cout << "1. Getting of an absolute value" << endl;
            cout << "2. Addition (+)" << endl;
            cout << "3. Subtraction (-)" << endl;
            cout << "4. Multiplication (*)" << endl;
            cout << "5. Division (/)" << endl;
            cout << "6. Getting of a complex-conjuncted value" << endl;
            cout << "7. Exit" << endl;
            cout << "Enter an operation: ";
            cin >> number;
            if (number == 7)
            return 0;
            if (number > 0 && number < 5) {cin >> x >> y;} else {cin >> x;}
            switch (number) {
                case 1:
                    z = x + y;
                    cout << z;
                    break;
                case 2:
                    z = x - y;
                    cout << z;
                    break;
                case 3:
                    z = x * y;
                    cout << z;
                    break;
                case 4:
                    z = x / y;
                    cout << z;
                    break;
                case 5:
                    z = x.conjuncted();
                    cout << z;
                    break;
                case 6:
                    cout << endl << x.modul() << endl;
                    break;
                case 7:
                    break;
                default:
                    cout << "Wrong operation!" << endl;
            }
            system("pause");
        }
        while (number != 7);
        return 0;
    }
Добавлено через 21 минуту
Ошибки в строках 93–96 с re и im и с доступом к ним. Плюс, в строках 129, 133, 137, 141 и 145 — наблюдается двусмысленность оператора <<, от коей мне нужно избавиться.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru