rendered paste body#include "imaginary.h"
using namespace std;
Imaginary::Imaginary()
{
real = 0;
imaginary = 0;
}
Imaginary::Imaginary(double r, double im)
{
real = r;
imaginary = im;
}
Imaginary Imaginary::conjugate()
{
Imaginary c(real,-imaginary);
return c;
}
void Imaginary::set(double r, double i)
{
real = r
imaginary = i;
}
void Imaginary::get_real()
{
return real;
}
void Imaginary::get_imaginary()
{
return imaginary;
}
Imaginary Imaginary::operator+(const Imaginary& i2) const
{
Imaginary sum;
sum.real = real + i2.real;
sum.imaginary = imaginary + i2.imaginary;
return sum;
}
Imaginary Imaginary::operator-(const Imaginary& i2) const
{
Imaginary diff;
diff.real = real - i2.real;
diff.imaginary = imaginary - i2.imaginary;
return diff;
}
Imaginary Imaginary::operator*(const Imaginary& i2) const
{
Imaginary product;
//since i^2 = -1, multiply by -1
product.real = real * i2.real + imaginary * i2.imaginary * -1;
product.imaginary = real * i2.imaginary + i2.real * imaginary;
return product;
}
Imaginary Imaginary::operator/(const Imaginary& i2) const
{
Imaginary conj;
Imaginary num,dem;
Imaginary answer;
conj = i2.conjugate();
num.real = real * conj.real + imaginary * conj.imaginary * -1;
num.imaginary = real * conj.imaginary + imaginary * conj.real;
dem.real = i2.real * conj.real + i2.imaginary * conj.imaginary * -1;
dem.imaginary = i2.real * conj.imaginary + i2.imaginary * conj.real;
answer.real = num.real/dem.real;
answer.imaginary = num.imaginary/dem.real;
return answer;
}
istream& Imaginary::operator>> (istream& input, Imaginary& i)
{
char sign, extra;
cout << "enter in a + bi form" << endl;
input >> i.real >> sign >> i.imaginary >> extra;
if ( sign == '-' )
i.imaginary = -i.imaginary;
return input;
}
ostream& Imaginary::operator<< (ostream& output, const Imaginary& i)
{
if (i.imaginary == 0)
output << i.real;
else if(i.real == 0)
output << i.imaginary << "i";
else if (i.imaginary < 0)
output << i.real << " - " << -i.imaginary << "i";
else
output << i.real << " + " << i.imaginary <<"i";
return output;
}