complex.h |
---|
class Complex{ private: double Re, Im; public: Complex(void); Complex(const double &re, const double &im); const double re(void) const; const double im(void) const; void print(void) const; }; const Complex add_Complex(const Complex &lhs, const Complex &rhs); const Complex sub_Complex(const Complex &lhs, const Complex &rhs); const Complex mul_Complex(const Complex &lhs, const Complex &rhs); const Complex div_Complex(const Complex &lhs, const Complex &rhs); |
complex.cxx |
---|
#include<iostream> #include<cstdlib> #include"complex.h" Complex::Complex(void){ } Complex::Complex(const double &re, const double &im): Re(re), Im(im){ } void Complex::print(void) const{ std::cout << "(" << Re << ")+i(" << Im << ")" << std::endl; return; } const double Complex::re(void) const{ return Re; } const double Complex::im(void) const{ return Im; } const Complex add_Complex(const Complex &lhs, const Complex &rhs){ Complex result( lhs.re()+rhs.re(), lhs.im()+rhs.im() ); return result; } const Complex sub_Complex(const Complex &lhs, const Complex &rhs){ return Complex ( lhs.re()-rhs.re(), lhs.im()-rhs.im() ); } const Complex mul_Complex(const Complex &lhs, const Complex &rhs){ double re=lhs.re()*rhs.re()-lhs.im()*rhs.im(); double im=lhs.re()*rhs.im()+lhs.im()*rhs.re(); Complex result(re, im); return result; } const Complex div_Complex(const Complex &lhs, const Complex &rhs){ if(rhs.re()==0.0 && rhs.im()==0.0){ std::cout << "Division by 0" << std::endl; exit(1); } double re=(lhs.re()*rhs.re()+lhs.im()*rhs.im())/(rhs.re()*rhs.re()+rhs.im()*rhs.im()); double im=(lhs.im()*rhs.re()-lhs.re()*rhs.im())/(rhs.re()*rhs.re()+rhs.im()*rhs.im()); return Complex(re, im); } |
main_complex.cxx |
---|
#include<iostream> #include<cstdlib> #include"complex.h" int main(void){ Complex x(2.0, 3.1), y(-1.2, 3.4), z(5.6, 7.8), u(-9.1, 2.3), result; std::cout << "x="; x.print(); std::cout << "y="; y.print(); result=add_Complex(x, y); std::cout << "result=x+y="; result.print(); result=sub_Complex(x, y); std::cout << "result=x-y="; result.print(); result=mul_Complex(x, y); std::cout << "result=x*y="; result.print(); result=div_Complex(x, y); std::cout << "result=x/y="; result.print(); result=sub_Complex(add_Complex(x, div_Complex(mul_Complex(y, x), z)), u); std::cout << "result=x+y*x/z-u="; result.print(); return 0; } |
fraction.h |
---|
class Fraction{ private: int Denominator, Numerator; public: Fraction(void); Fraction(const int &numerator, const int &denominator); const int denominator(void) const; const int numerator(void) const; void print(void) const; }; const Fraction add_Fraction(const Fraction &lhs, const Fraction &rhs); const Fraction sub_Fraction(const Fraction &lhs, const Fraction &rhs); const Fraction mul_Fraction(const Fraction &lhs, const Fraction &rhs); const Fraction div_Fraction(const Fraction &lhs, const Fraction &rhs); |
fraction.cxx |
---|
#include<iostream> #include"fraction.h" Fraction::Fraction(void){ } Fraction::Fraction(const int &numerator, const int &denominator): Numerator(numerator), Denominator(denominator){ } const int Fraction::denominator(void) const{ return Denominator; } const int Fraction::numerator(void) const{ return Numerator; } void Fraction::print(void) const{ std::cout << "(" << Numerator << ")/(" << Denominator << ")"; return; } const Fraction add_Fraction(const Fraction &lhs, const Fraction &rhs){ int denominator=lhs.denominator()*rhs.denominator(); int numerator=lhs.denominator()*rhs.numerator()+lhs.numerator()*rhs.denominator(); return Fraction(numerator, denominator); } const Fraction sub_Fraction(const Fraction &lhs, const Fraction &rhs){ Fraction result; int denominator=lhs.denominator()*rhs.denominator(); int numerator=rhs.denominator()*lhs.numerator()-rhs.numerator()*lhs.denominator(); return Fraction(numerator, denominator); } const Fraction mul_Fraction(const Fraction &lhs, const Fraction &rhs){ return Fraction( lhs.numerator()*rhs.numerator(), lhs.denominator()*rhs.denominator() ); } const Fraction div_Fraction(const Fraction &lhs, const Fraction &rhs){ return Fraction( lhs.denominator()*rhs.numerator(), lhs.numerator()*rhs.denominator() ); } |
main_fraction.cxx |
---|
#include<iostream> #include"fraction.h" int main(void){ Fraction x(2, 3), y(-1, 3), z(3, 5), u(-2, 7), result; std::cout << "x="; x.print(); std::cout << std::endl; std::cout << "y="; y.print(); std::cout << std::endl; result=add_Fraction(x, y); std::cout << "result=x+y="; result.print(); std::cout << std::endl; result=sub_Fraction(x, y); std::cout << "result=x-y="; result.print(); std::cout << std::endl; result=mul_Fraction(x, y); std::cout << "result=x*y="; result.print(); std::cout << std::endl; result=div_Fraction(x, y); std::cout << "result=x/y="; result.print(); std::cout << std::endl; result=sub_Fraction(add_Fraction(x, div_Fraction(mul_Fraction(y, x), z)), u); std::cout << "result=y*x/z+u="; result.print(); std::cout << std::endl; return 0; } |
std::cout.setf(std::ios::scientific,std::ios::floatfield); |