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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 76, средняя оценка - 4.66
Swee
0 / 0 / 0
Регистрация: 25.08.2010
Сообщений: 9
#1

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

30.08.2010, 17:52. Просмотров 10635. Ответов 6
Метки нет (Все метки)

Ребят, помогите пожалуйста написать класс комплексных чисел... Я плохо разбираюсь в объектно-ориентированном программировании, учусь, покажите плиз!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2010, 17:52     Класс комплексных чисел
Посмотрите здесь:

Класс комплексных чисел - C++
Привет))) Пожалуйста, помогите мне создать эту программу!) Я буду вам благодарна) Разработать алгоритм и программу ввода с клавиатуры...

Класс комплексных чисел - C++
Помогите пожалуйста реализовать (без использования <complex>) класс комплексных чисел с простейшими операциями и ВЫВЕСТИ результат на...

Класс комплексных чисел - C++
Класс комплексных чисел, стандартные операции, перегрузка ввода-вывода. С вводом-выводом проблемы. Вроде всегда так писали, но сейчас...

Класс комплексных чисел - C++
Нужно создать программу (два класса) Класс комплексных чисел Базовый класс (мнимых чисел): Конструкторы: по умолчавнию, с параметрами...

Класс Комплексных Чисел - C++
Здравствуйте, попробовал тут написать класс комплексных чисел, но пишет ошибку error: statement cannot resolve adress of overloaded...

Класс комплексных чисел - C++
Сейчас начал изучение классов. Придумал себе задачку: написать класс комплексных чисел. Пока планирую так: PRIVATE: - переменные: ...

Создать класс комплексных чисел - C++
Создать класс,объекты которого моделируют комплексные числа с перегрузкой необходимых операций.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
30.08.2010, 19:16     Класс комплексных чисел #2
Ты начни, а мы поможем!
Swee
0 / 0 / 0
Регистрация: 25.08.2010
Сообщений: 9
30.08.2010, 19:33  [ТС]     Класс комплексных чисел #3
Сие чудо не компилируется! Не могу понять почему.. ругается на хедеры по большей мере...пишу например без .h, но всеравно ерунда какая-то!

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
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
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;
}
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 758
Записей в блоге: 1
30.08.2010, 19:57     Класс комплексных чисел #4
Используй <iostream>, без .h
Пиши либо std::cout, либо перед ф-цией main() напиши using std::cout;
C std::endl, std::istream, std::ostream аналогично.

Добавлено через 3 минуты
А, да. Укажи, каким компилятором и средой разработки пользуешься.

Добавлено через 5 минут
Complex::fn() при определении функции пишеться только извне класса.

Добавлено через 29 секунд
conio.h здесь не используется.

Добавлено через 12 минут
Вот
код
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
 
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 operator + (Complex &c) // перегрузка оператора сложения
    {
        Complex temp;
 
        temp.re = re + c.re;
        temp.im = im + c.re;
 
        return temp;
    }
 
    Complex operator - (Complex &c) // перегрузка оператора вычитания
    {
        Complex temp;
 
        temp.re = re - c.re;
        temp.im = im - c.re;
 
        return temp;
    }
 
    Complex operator * (Complex &c) // перегрузка оператора умножения
    {
        Complex temp;
 
        temp.re = re*c.re;
        temp.im = re*c.im;
 
        return temp;
    }
 
    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 &, const Complex &); // перегрузка оператора <<
    friend istream &operator>>(istream &, const Complex &); // перегрузка оператора >>
 
};
 
ostream &operator<<(ostream &out, const Complex &c)
{
    out << c.re;
    if( c.im > 0 )
        out << "+";
    out << c.im << "i";
 
    return out;
}
 
istream &operator>>(istream &in, const 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;
}
, но лучше, если сначала попробуешь разобраться сам.
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
30.08.2010, 20:21     Класс комплексных чисел #5
Для примера посмотри complex из STL
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,189
Завершенные тесты: 1
30.08.2010, 21:03     Класс комплексных чисел #6
Надо бы
C++
1
Complex Complex::operator * (Complex &c)

C++
1
Complex Complex::operator * (const Complex &c) const
Аналогично в остальных случаях.
Можно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
   Complex() {};
 
   Complex (double r) // конструктор по умолчанию
   {
      re = r; 
          im = 0;
   }
 
   Complex (double r, double i) // конструктор по умолчанию
   {
      re = r; 
          im = i;
   }

C++
1
Complex (double r = 0.0, double i = 0.0) : re(r), im(im) {}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.08.2010, 22:14     Класс комплексных чисел
Еще ссылки по теме:

Класс комплексных чисел(подправить) - C++
Помогите дописать в оераторе &quot;умножение&quot; умножение вещественного числа на комплексное,double на комплексное. Очень надо. Заранее спасибо ...

Класс комплексных чисел в показательной форме - C++
Всем доброго времени суток, реализую класс комплексных чисел в показательной форме. Нужна помощь в проверке математики :wall: (особенно...

Реализовать пользовательский класс комплексных чисел - C++
Помогите пожалуйста сделать задание - программу вычисления комплексного числа. Есть рабочая, которая считает формулу:...

Класс для обработки комплексных чисел - C++
Дана задача написать класс для обработки комплексных чисел(вывод на экран, модуль числа, действия: &quot;+,-,*,/&quot;. Готовые коды находил, но...

Описать класс для обработки комплексных чисел - C++
Уважаемые программисты, помогите пожалуйста решить задачу к экзамену. Необходимо создать класс для обработки комплексных чисел, полями...


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

Или воспользуйтесь поиском по форуму:
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
30.08.2010, 22:14     Класс комплексных чисел #7
http://www.cyberforum.ru/cpp-beginne...read84458.html
Обьектно ориентированное програмирование
Ввести структуру для описания комплексного числа
http://www.cyberforum.ru/cpp-beginne...ead133229.html

итд
Yandex
Объявления
30.08.2010, 22:14     Класс комплексных чисел
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru