С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Структура "Комплексное число" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подскажите где ошибка http://www.cyberforum.ru/cpp-beginners/thread1143636.html
Вот условие По заданному числу n от 1 до 365 определите, на какое число какого месяца приходится день невисокосного года с номером n. Формат входных данных Дано одно целое число n. Формат...
C++ Преобразование String в float Добрый день уважаемые форумчане. Подскажите пожалуйста как преобразовать String в float. Заранее благодарен. http://www.cyberforum.ru/cpp-beginners/thread1143632.html
C++ Нужно добавить классы в программу
#include "stdafx.h" #include <stdlib.h> #include <stdio.h> #include <string.h> #include <malloc.h> #include <locale.h> #define GROUPSNUM 4 static char *NAMESGROUPS = { "20-30", "30-40",...
Можно ли как-то в дочернем классе получить указатель родителя? C++
У меня тут появилась мыслишка :D В любом классе есть так сказать скрытый указатель на самого себя - this, а можно ли как то получить в дочернем классе указатель на родительский класс? P.S.: без...
C++ Перенос программы в Windows Forms http://www.cyberforum.ru/cpp-beginners/thread1143620.html
Срочно нужно перенести код консольного приложения в с++ Буду очень признателен. Минимальный интерфейс. 1 текстовое поле для результата. 1 выдвижное меню для выбора тональности. #include...
C++ Дана последовательность Последовательность x1, x2, ... образована по закону (См. картинку) (i=1,2, ...). Дано действительное число e>0. Записать в файл h члены последовательности x1, x2, ..., остановившись после первого... подробнее

Показать сообщение отдельно
MarVaL
С++ Beginner
117 / 117 / 16
Регистрация: 28.02.2013
Сообщений: 246
10.04.2014, 12:50
Операции перегрузить легче простого
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
#include <iostream>
#include <cmath>
const double PI = 3.14159265;
struct Complex
{
private:
    double Re, Im;
    double angle, r;
 
    void calculate()
    {
        r = sqrt(Re * Re + Im * Im);
        angle = Re > 0 && Im > 0 ? atan(std::abs(Im/Re)) : 
                Re < 0 && Im > 0 ? PI - atan(std::abs(Im/Re)) :
                Re < 0 && Im < 0 ? -PI + atan(std::abs(Im/Re)) :
                Re > 0 && Im < 0 ? -atan(std::abs(Im/Re)) :
                Re == 0 && Im > 0 ? PI / 2 :
                Re > 0 && Im == 0 ? 0:
                Re < 0 && Im == 0 ? PI:
                Re < 0 && Im < 0 ? 3 * PI / 2 : 0;
        angle = angle * 180 / PI;       
    }
public:
    Complex()
        : Re(0), Im(0)
    {}
 
    Complex(double _Re, double _Im)
        : Re(_Re), Im(_Im)  
    {
        calculate();
    }
 
    Complex(const Complex& rhs)
        : Re(rhs.Re), Im(rhs.Re), angle(rhs.angle), r(rhs.r)
    {}
 
    void input()
    {
        std::cout << "Re = "; std::cin >> Re;
        std::cout << "Im = "; std::cin >> Im;
        calculate();
    }
 
    void displayExp() const
    { std::cout << r << "exp(" << angle << '\xF8' << ")" << std::endl; }
    
    void displayAlg() const
    { std::cout << Re << (Im < 0 ? " " : " +") << Im << "i" << std::endl; }
};
 
int main()
{
    Complex c1(3,3);
    c1.displayAlg();
    c1.displayExp();
 
    Complex c2;
    c2.input();
    c2.displayAlg();
    c2.displayExp();
 
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.