| 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); |