complex.h |
---|
struct Complex{ double Re, Im; }; const struct Complex Complex(const double &re, const double &im); void print_Complex(const struct Complex &arg); const struct Complex add_Complex(const struct Complex &lhs, const struct Complex &rhs); const struct Complex sub_Complex(const struct Complex &lhs, const struct Complex &rhs); const struct Complex mul_Complex(const struct Complex &lhs, const struct Complex &rhs); const struct Complex div_Complex(const struct Complex &lhs, const struct Complex &rhs); |
complex.cxx |
---|
#include<iostream> #include<cstdlib>//stdlib.hの代わり #include"complex.h" const struct Complex Complex(const double &re, const double &im){ struct Complex result; result.Re=re; result.Im=im; return result; } void print_Complex(const struct Complex &arg){ std::cout << "(" << arg.Re << ")+i(" << arg.Im << ")" << std::endl; return; } const struct Complex add_Complex(const struct Complex &lhs, const struct Complex &rhs){ struct Complex result; result.Re=lhs.Re+rhs.Re; result.Im=lhs.Im+rhs.Im; return result; } const struct Complex sub_Complex(const struct Complex &lhs, const struct Complex &rhs){ struct Complex result; result.Re=lhs.Re-rhs.Re; result.Im=lhs.Im-rhs.Im; return result; } const struct Complex mul_Complex(const struct Complex &lhs, const struct Complex &rhs){ struct Complex result; result.Re=lhs.Re*rhs.Re-lhs.Im*rhs.Im; result.Im=lhs.Re*rhs.Im+lhs.Im*rhs.Re; return result; } const struct Complex div_Complex(const struct Complex &lhs, const struct Complex &rhs){ struct Complex result; if(rhs.Re==0.0 && rhs.Im==0.0){ std::cout << "Division by 0" << std::endl; exit(1); } result.Re=(lhs.Re*rhs.Re+lhs.Im*rhs.Im)/(rhs.Re*rhs.Re+rhs.Im*rhs.Im); result.Im=(lhs.Im*rhs.Re-lhs.Re*rhs.Im)/(rhs.Re*rhs.Re+rhs.Im*rhs.Im); return result; } |
main_complex.cxx |
---|
#include<iostream> #include<cstdlib>//stdlib.hの代わり #include"complex.h" int main(void){ struct Complex x=Complex(2.0, 3.1), y=Complex(-1.2, 3.4), z=Complex(5.6, 7.8), u=Complex(-9.1, 2.3), result; std::cout << "x="; print_Complex(x); std::cout << "y="; print_Complex(y); result=add_Complex(x, y); std::cout << "result=x+y="; print_Complex(result); result=sub_Complex(x, y); std::cout << "result=x-y="; print_Complex(result); result=mul_Complex(x, y); std::cout << "result=x*y="; print_Complex(result); result=div_Complex(x, y); std::cout << "result=x/y="; print_Complex(result); result=sub_Complex(add_Complex(x, div_Complex(mul_Complex(y, x), z)), u); std::cout << "result=x+y*x/z-u="; print_Complex(result); return 0; } |
fraction.h |
---|
struct Fraction{ int Denominator, Numerator; }; const struct Fraction Fraction(const int &a, const int &b); void print_Fraction(const struct Fraction &arg); const struct Fraction add_Fraction(const struct Fraction &lhs, const struct Fraction &rhs); const struct Fraction sub_Fraction(const struct Fraction &lhs, const struct Fraction &rhs); const struct Fraction mul_Fraction(const struct Fraction &lhs, const struct Fraction &rhs); const struct Fraction div_Fraction(const struct Fraction &lhs, const struct Fraction &rhs); |
fraction.cxx |
---|
#include<iostream> #include"fraction.h" const struct Fraction Fraction(const int &numerator, const int &denominator){ struct Fraction result; result.Denominator=denominator; result.Numerator=numerator; return result; } void print_Fraction(const struct Fraction &arg){ std::cout << "(" << arg.Numerator << ")/(" << arg.Denominator << ")"; return; } const struct Fraction add_Fraction(const struct Fraction &lhs, const struct Fraction &rhs){ struct Fraction result; result.Denominator=lhs.Denominator*rhs.Denominator; result.Numerator=lhs.Denominator*rhs.Numerator+lhs.Numerator*rhs.Denominator; return result; } const struct Fraction sub_Fraction(const struct Fraction &lhs, const struct Fraction &rhs){ struct Fraction result; result.Denominator=lhs.Denominator*rhs.Denominator; result.Numerator=rhs.Denominator*lhs.Numerator-rhs.Numerator*lhs.Denominator; return result; } const struct Fraction mul_Fraction(const struct Fraction &lhs, const struct Fraction &rhs){ struct Fraction result; result.Denominator=lhs.Denominator*rhs.Denominator; result.Numerator=lhs.Numerator*rhs.Numerator; return result; } const struct Fraction div_Fraction(const struct Fraction &lhs, const struct Fraction &rhs){ struct Fraction result; result.Denominator=lhs.Denominator*rhs.Numerator; result.Numerator=lhs.Numerator*rhs.Denominator; return result; } |
main_fraction.cxx |
---|
#include<iostream> #include"fraction.h" int main(void){ struct Fraction x=Fraction(2, 3), y=Fraction(-1, 3), z=Fraction(3, 5), u=Fraction(-2, 7), result; std::cout << "x="; print_Fraction(x); std::cout << std::endl; std::cout << "y="; print_Fraction(y); std::cout << std::endl; result=add_Fraction(x, y); std::cout << "result=x+y="; print_Fraction(result); std::cout << std::endl; result=sub_Fraction(x, y); std::cout << "result=x-y="; print_Fraction(result); std::cout << std::endl; result=mul_Fraction(x, y); std::cout << "result=x*y="; print_Fraction(result); std::cout << std::endl; result=div_Fraction(x, y); std::cout << "result=x/y="; print_Fraction(result); 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="; print_Fraction(result); std::cout << std::endl; return 0; } |