Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
reser007
0 / 0 / 0
Регистрация: 19.11.2016
Сообщений: 17
1

Создать иерархию классов для работы с комплексными числами

17.12.2016, 08:56. Просмотров 180. Ответов 1
Метки нет (Все метки)

Создайте базовый класс Complex (комплексное число) для реализации комплексных чисел в алгебраической форме и основных операций с ними: сложения, вычитания, умножения и деления. Создайте производный класс, в котором определите операции вычисления модуля комплексного числа и комплексно спряженного.

Вот мои наработки, но они не работают.
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
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
 
class complex
{
protected:
    double x;
    double y;
public:
    complex();
    complex(double _x, double _y);
    ~complex();
    void viev() const;
    complex operator + (const complex &m);
    complex operator - (const complex &m);
    complex operator * (const complex &m);
    complex operator / (const complex &m);
    };
  
class abv_complex :public complex
{private: 
        double z;
public:
    abv_complex(double _z, double _x, double _y):
      complex(_x, _y) {z=_z;}
      void two() double;
          cout << "Введите действительную часть числа:" << endl;
         cin >> x;
        cout << "Введите мнимую часть числа:" << endl;
        cin >> y;
        viev();
        void gas() {
            z = pow(x*x + y*y, 0.5);
            cout<<"Модуль: "<<z;
          cout<<"Сопряженное : z="<<x<<"-"<<y<<endl;}
          
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "russian");
 
    complex a, b;
    complex r = a + b;
    abv_complex two;
    r.viev();
    r = a - b;
    r.viev();
    r = a*b;
    r.viev();
    r = a / b;
    r.viev();
    r.gas();
    r.two();
    
    system("pause");
    return 0;
}
complex complex::operator + (const complex &m){
        complex result(*this);
        result.x = x + m.x;
        result.y = y + m.y;
        return result;
    }
 
    complex complex::operator - (const complex &m){
        complex result(*this);
        result.x = x - m.x;
        result.y = y - m.y;
        return result;
    }
 
    complex complex::operator * (const complex &m){
        complex result(*this);
        result.x = (x*m.x) - (y*m.y);
        result.y = (y*m.x) + (x*m.y);
        return result;
    }
 
    complex complex::operator / (const complex &m){
        complex result(*this);
        result.x = (((x*m.x) + (y*m.y)) / (m.x*m.x - m.y*m.y));
        result.y = (((y*m.x) - (x*m.y)) / (m.x*m.x - m.y*m.y));
        return result;
    }
complex::complex() {
    double z;
    cout << "Введите действительную часть числа:" << endl;
    cin >> x;
    cout << "Введите мнимую часть числа:" << endl;
    cin >> y;
    z = pow(x*x + y*y, 0.5);
    viev();
}
complex::~complex(){}
 
void complex::viev() const{
    cout << "z=" << x << "+" << y << "i" << endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2016, 08:56
Ответы с готовыми решениями:

Создать класс для работы с тригонометрическими комплексными числами - C++
Создать класс для работы с тригонометрическими комплексными числами....

Создать класс для работы с тригонометрическими комплексными числами
Дана первоначальная задача (я ее решил):3. Создать класс для работы с...

c++ создать класс complex для работы с комплексными числами
Помогите, пожалуйста. c++ создать класс complex для работы с комплексными...

Класс для работы с комплексными числами
ne kompeliruet :S #ifndef COMPLEX0_H_ #define COMPLEX0_H_ class Complex { ...

класс для работы с комплексными числами
Здравствуйте.Надо: реализовать класс для работы с комплексными...

1
afront
1051 / 998 / 752
Регистрация: 29.02.2016
Сообщений: 3,187
17.12.2016, 11:34 2
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
#include <iostream>
#include <cmath>
using namespace std;
class Complex
{
private:
    double re, im;
public:
    Complex() 
    {
        re = 0;
        im = 0;
    }
    Complex(double r, double i)  
    {
        re = r;
        im = i;
    }
    double abs()
    {
        double r;
        r = sqrt(pow(re, 2) + pow(im, 2));
        return r;
    }
 
    void get()
    {
        cout << "Введите действительную часть числа:" << endl;
        cin >> re;
        cout << "Введите мнимую часть числа:" << endl;
        cin >> im;
    }
    void print()
    {
        cout << "z=" << re << "+" << im << "i" << endl;
    }
    friend Complex operator+(Complex f1, Complex f2);
    friend Complex operator-(Complex f1, Complex f2);
    friend Complex operator*(Complex f1, Complex f2);
    friend Complex operator/(Complex f1, Complex f2);
};         
Complex operator+(Complex f1, Complex f2) // сложение
{
    Complex th;
    th.re = f1.re + f2.re;
    th.im = f1.im + f2.im;
    return th;
}
Complex operator -(Complex f1, Complex f2) //вычитание
{
    Complex th;
    th.re = f1.re - f2.re;
    th.im = f1.im - f2.im;
    return th;
}
Complex operator *(Complex f1, Complex f2)// умножение
{
    Complex th;
    th.re = f1.re * f2.re - f1.im * f2.im;
    th.im = f1.re * f2.im + f1.im * f2.re;
    return th;
}
Complex operator /(Complex f1, Complex f2)// деление
{
    Complex th;
    th.re = (f1.re * f2.re + f1.im * f2.im) / (pow(f2.re, 2) + pow(f2.im, 2));
    th.im = (f2.re * f1.im - f1.re * f2.im) / (pow(f2.re, 2) + pow(f2.im, 2));
    return th;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    Complex cmx,cmx1,cmx2;
    cmx1.get();
    cmx2.get();
    cmx=cmx1+cmx2;
    cmx.print();
    cmx=cmx1*cmx2;
    cmx.print();
    system("pause");
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2016, 11:34

Описать класс для работы с комплексными числами
Описать класс для работы с комплексными числами (ввод-вывод, сложение,...

Класс Complex для работы с комплексными числами
Создать класс Complex для работы с комплексными числами. В классе...

Шаблон класса для работы с комплексными числами
Есть такая программа: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using...


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

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

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