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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести номер последнего числа в наборе, от меньшего К http://www.cyberforum.ru/cpp-beginners/thread1126914.html
Дано целое число K и набор ненулевых целых чисел, признак его завершения — число 0. Вывести номер последнего числа в наборе, от меньшего К. Если таких... <Предложение не завершено> нужна блок-схема,...
C++ На подобии игры ДжевелКвест(используя матрицу) Доброго времени суток! Собственно задание: Имеется целочисленная матрица с числами от 0 до 4 что обозначают цвета(например каких то фигур). Нужно сделать так что бы я мог указать координаты одной... http://www.cyberforum.ru/cpp-beginners/thread1126892.html
Разработать функцию, которая для заданного натурального числа N возвращает сумму его делителей C++
Разработать функцию, которая для заданного натурального числа N возвращает сумму его делителей. С помощью данной функции: вывести на экран только те целые числа отрезка , у которых сумма ...
C++ Переписать код из dev-C++ в Turbo C
помогите переделать из dev-C++ в Turbo C #include <iostream> #include <windows.h> #include <conio.h> #include <graphics.h> int luna(){ for (int i = 1; i<4;i++){ ...
C++ Переопределить методы увеличения полей на 1 и определить методы увеличения даты на n дней http://www.cyberforum.ru/cpp-beginners/thread1126865.html
Создать класс Triad (тройка чисел); определить методы увеличения полей на 1. Определить класс−наследник Date с данными−член: день , месяц, год. Переопределить методы увеличения полей на 1 и...
C++ Создать класс Вектор на плоскости (поля-координаты начала и конца вектора).Реализовать для него методы:конструктор,вычисление координат самого вектора Создать класс Вектор на плоскости (поля-координаты начала и конца вектора).Реализовать для него методы:конструктор,вычисление координат самого вектора,вычисление длины вектора,вывод на экран.Создать... подробнее

Показать сообщение отдельно
Ms Proger
0 / 0 / 0
Регистрация: 07.12.2013
Сообщений: 88

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

22.03.2014, 21:36. Просмотров 998. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru