Задача: Комплексні числа (алгебраїчна і тригометрична форми)
Реалізувати два варіанти класу комплексних чисел за доданими специфікаціями:
УВАГА! Період тригонометричних чисел має округлюватися до 2*PI
УВАГА! Період тригонометричних чисел має округлюватися до 2*PI
#include <iostream>
#include <cmath>
using namespace std;
const double PI = 3.141592653589793238462643383279;
class AComplex;
class TComplex
{
private:
double _ro, _phi;
// Зведення по модулю 2PI
void normalizePhi();
public:
TComplex (const double& ro=0, const double& phi=0);
TComplex (const TComplex&);
TComplex (const AComplex&);
~TComplex();
TComplex& operator= (const TComplex&);
double& mod();
double& arg();
const double& mod() const;
const double& arg() const;
const double re() const;
const double im() const;
};
TComplex& operator+=(TComplex&, const TComplex&);
TComplex& operator-=(TComplex&, const TComplex&);
TComplex& operator*=(TComplex&, const TComplex&);
TComplex& operator/=(TComplex&, const TComplex&);
const TComplex operator* (const TComplex&, const TComplex&);
const TComplex operator/ (const TComplex&, const TComplex&);
class TComplex;
class AComplex
{
private:
double _re, _im;
public:
AComplex (const double& re=0, const double& im=0);
AComplex (const TComplex&);
AComplex (const AComplex&);
~AComplex();
AComplex& operator= (const AComplex&);
double& re();
double& im();
const double& re(void) const;
const double& im(void) const;
const double mod() const;
const double arg() const;
// Спряжене до комплексного числа
const AComplex conj() const;
};
AComplex& operator+=(AComplex&, const AComplex&);
AComplex& operator-=(AComplex&, const AComplex&);
AComplex& operator*=(AComplex&, const AComplex&);
AComplex& operator/=(AComplex&, const AComplex&);
const bool operator==(const AComplex &, const AComplex &);
const bool operator!=(const AComplex &, const AComplex &);
const AComplex operator+ (const AComplex&, const AComplex&);
const AComplex operator- (const AComplex&, const AComplex&);
- 0
- 31 травня 2013, 23:13
- GarfieldUA
- Залишити коментар