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

Операции с комплексными числами. Проконсультируйте. (аргумент, модуль, сложение, умножение, вычитание) - C++

Восстановить пароль Регистрация
 
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
22.03.2014, 21:36     Операции с комплексными числами. Проконсультируйте. (аргумент, модуль, сложение, умножение, вычитание) #1
здравствуйте. Эта программа рабочая, работает для аргумента, сложения, вычитания, умножения, модуля комплексных чисел. Проверьте её пожалуйста. Что надо добавить / убрать... Меня затруднило
C++
1
2
3
4
5
{
complex a(7.0,6.0),b(2.0,4.0),c;
c=a*b;
c.print();
}
что здесь можно добавить, связанное с модулем и аргументом, подскажите.

вот код.

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
#include "stdafx.h"
#include "math.h"
#include <iostream>
using namespace std;
 
class complex//задаем класс
{
private://явл. собственным полем
    double m_a;//мембер "а"
    double m_b;
    
public:
    complex();
    complex (double a, double b);
    
    complex &operator+ (const complex&);//& относится к complex,возратить ссылку на класс
    complex &operator- (const complex&);
    /*перегрузка операторов Может выполнять арифметические и другие операции 
    для своих типов данных с помощью обычных символов + - *
    перегрузка оператора -класс будет использовать этот метод как оператор.когда класс 
    перегружает оператор, он должен указать функцию, которая реализует операцию, соответствующую этому оператору
    */
    complex &operator* (const complex&);
    void print();
 
    double getModule();
    double getArgument();
    
    
};
 
complex::complex()
{
    m_a = 0.0;
    m_b = 0.0;
}
 
complex::complex (double a, double b)
{
    m_a = a;
    m_b = b;
}
 
//реализовываем + - * соответственно
 
complex &complex :: operator+ (const complex &source)
{
    /*Создаём новый объект класса КОМПЛЕКС с названием newComplex 
    с помощью конструктора complex (double a, double b);
    */
    complex newComplex(this->m_a + source.m_a, this->m_b + source.m_b);
    /* this -указатель на экземпляр класса и представляет собой
    адрес объякта которому присвоили значение а.
    source - экземпляр класса, "." - обращение к данным и методам класса
    */
    return newComplex; //возвратили это (+)
}
complex &complex :: operator- (const complex &source)
{
    complex newComplex(this->m_a - source.m_a, this->m_b - source.m_b);
    return newComplex;
}
complex &complex :: operator* (const complex &source)
{
    complex newComplex(this->m_a * source.m_a - this->m_b * source.m_b, this->m_a * source.m_b + this->m_b * source.m_a); // вычисление (a+bi)(c+di) = a*c-b*d + (a*d+b*c)i
    return newComplex;
}
double complex::getModule()
{
    return sqrt(m_a*m_a+m_b*m_b);
}
double complex::getArgument()
{
    return atan2(m_b, m_a);
}
void complex::print()
{
    cout << m_a << "+i" << m_b << endl;
}
 
void _tmain()
{
complex a(7.0,6.0),b(2.0,4.0),c;
c=a*b;
c.print();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2014, 21:36     Операции с комплексными числами. Проконсультируйте. (аргумент, модуль, сложение, умножение, вычитание)
Посмотрите здесь:

С клавиатуры вводится две матрицы вычислить: сложение, вычитание, умножение, транспонирование. C++
C++ Сложение, вычитание, умножение
Операции с комплексными числами и перегрузка операторов << и >> C++
Организовать ввод двух вещественных чисел и операции над ними: сложение, вычитание, умножение и деление C++
сложение и вычитание, умножение и деление, сравнение сумм C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
just_freelance
61 / 37 / 9
Регистрация: 15.03.2014
Сообщений: 315
22.03.2014, 21:50     Операции с комплексными числами. Проконсультируйте. (аргумент, модуль, сложение, умножение, вычитание) #2
Ms Proger, а почему деление не реализовали?
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
22.03.2014, 21:57  [ТС]     Операции с комплексными числами. Проконсультируйте. (аргумент, модуль, сложение, умножение, вычитание) #3
в задании этого не было. Наверное позже. Но это пока не суть важно.
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,914
22.03.2014, 22:57     Операции с комплексными числами. Проконсультируйте. (аргумент, модуль, сложение, умножение, вычитание) #4
Ms Proger, вы учли частные случаи аргумента?
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 77
23.03.2014, 20:25  [ТС]     Операции с комплексными числами. Проконсультируйте. (аргумент, модуль, сложение, умножение, вычитание) #5
Нет не учел.. подскажите, если не сложно

Добавлено через 19 часов 28 минут
здравствуйте еще раз. как в моём коде можно учесть частные случаи аргумента?
S_el
1906 / 1501 / 295
Регистрация: 15.12.2013
Сообщений: 5,914
23.03.2014, 22:22     Операции с комплексными числами. Проконсультируйте. (аргумент, модуль, сложение, умножение, вычитание) #6
Цитата Сообщение от Ms Proger Посмотреть сообщение
как в моём коде можно учесть частные случаи аргумента?
Ms Proger, например через условный оператор.

C++
1
2
3
4
if(/*условие*/)
{
//действие.
}
Yandex
Объявления
23.03.2014, 22:22     Операции с комплексными числами. Проконсультируйте. (аргумент, модуль, сложение, умножение, вычитание)
Ответ Создать тему
Опции темы

Текущее время: 23:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru