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

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

22.03.2014, 21:36. Показов 2148. Ответов 5
Метки нет (Все метки)

здравствуйте. Эта программа рабочая, работает для аргумента, сложения, вычитания, умножения, модуля комплексных чисел. Проверьте её пожалуйста. Что надо добавить / убрать... Меня затруднило
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();
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2014, 21:36
Ответы с готовыми решениями:

Структуры: арифметические операции (сложение, вычитание, умножение, деление) над комплексными числами
Написать программу, реализующую арифметические операции (сложение, вычитание, умножение, деление),...

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

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

Операции над матрицами-сложение, вычитание, умножение на число
Здравствуйте,помогите пожалуйста по такой проблемке-в С++ надо создать матрицу и действия над...

5
61 / 37 / 16
Регистрация: 15.03.2014
Сообщений: 315
22.03.2014, 21:50 2
Ms Proger, а почему деление не реализовали?
0
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 93
22.03.2014, 21:57  [ТС] 3
в задании этого не было. Наверное позже. Но это пока не суть важно.
0
2422 / 1824 / 402
Регистрация: 15.12.2013
Сообщений: 7,997
22.03.2014, 22:57 4
Ms Proger, вы учли частные случаи аргумента?
0
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 93
23.03.2014, 20:25  [ТС] 5
Нет не учел.. подскажите, если не сложно

Добавлено через 19 часов 28 минут
здравствуйте еще раз. как в моём коде можно учесть частные случаи аргумента?
0
2422 / 1824 / 402
Регистрация: 15.12.2013
Сообщений: 7,997
23.03.2014, 22:22 6
Цитата Сообщение от Ms Proger Посмотреть сообщение
как в моём коде можно учесть частные случаи аргумента?
Ms Proger, например через условный оператор.

C++
1
2
3
4
if(/*условие*/)
{
//действие.
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2014, 22:22

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

Калькулятор, который поддерживает четыре операции: сложение, вычитание, умножение, деление
Помогиет пожалуйста... Я не знаю как написать эту программу...:help: Напишите программу, которая...

Составить модуль, в котором реализуются простые операции с комплексными числами
Почему не работает?( Составить модуль в котором реализуются простые операции с комплексными...

Арифметические действия над числами пронумерованы следующим образом: 1- сложение ,2- вычитание, 3- умножение, 4- деление
Арифметические действия над числами пронумерованы следующим образом: 1- сложение , 2- вычитание,...

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

Операции с двоичными числами (умножение, модуль)
Здравствуйте, можно как-то на c# умножать двоичные числа и брать их по модулю? Может библиотека...


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

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

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