Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Fraction.h"
- #include <exception>
- using namespace std;
- Fraction::Fraction(long value_numerator, long value_denominator) {
- numerator = value_numerator;
- denominator = value_denominator;
- fractionshort();
- }
- long Fraction::nod(long a, long b) {
- if (!b)
- return a;
- return(nod(b, a % b));
- }
- void Fraction::fractionshort() {
- if (Get_Denominator() == 0) {
- throw "знаменатель не должен равняться нулю!";
- }
- if (Get_Denominator() < 0) {
- Set_Denominator (-Get_Denominator());
- Set_Numerator (-Get_Numerator());
- }
- long nodx = nod(Get_Numerator(), Get_Denominator());
- Set_Numerator(Get_Numerator()/nodx);
- Set_Denominator(Get_Denominator()/nodx);
- }
- Fraction::~Fraction() {};
- long Fraction::Get_Numerator() const {
- return numerator;
- }
- void Fraction::Set_Numerator(long value_numerator) {
- numerator = value_numerator;
- //fractionshort();
- }
- long Fraction::Get_Denominator() const {
- return denominator;
- }
- void Fraction::Set_Denominator(long value_denominator) {
- if (value_denominator == 0) {
- throw "знаменатель не должен равняться нулю!";
- }
- denominator = value_denominator;
- }
- double Fraction::value_fraction() const {
- return (double)numerator / (double)denominator;
- }
- Fraction Fraction::operator+(const Fraction& f) const {
- return Fraction(numerator * f.denominator + f.numerator * denominator, denominator * f.denominator);
- }
- Fraction Fraction::operator-(const Fraction& f) const {
- return Fraction(numerator * f.denominator - f.numerator * denominator, denominator * f.denominator);
- }
- Fraction Fraction::operator*(const Fraction& f) const {
- return Fraction(numerator * f.numerator, denominator * f.denominator);
- }
- Fraction Fraction::operator/ (const Fraction& f) const {
- if (f.numerator == 0) {
- throw "Возникло деление на ноль!";
- }
- return Fraction(numerator * f.denominator, denominator * f.numerator);
- }
- Fraction Fraction::changeofsign(long numerator,long denominator){
- return Fraction(-numerator, denominator);
- }
- bool Fraction::operator==(const Fraction& f) const {
- return ((Get_Numerator() == f.Get_Numerator()) && (Get_Denominator() == f.Get_Denominator()));
- }
- bool Fraction::operator!=(const Fraction& f) const {
- return ((Get_Numerator() != f.Get_Numerator()) && (Get_Denominator() != f.Get_Denominator()));
- }
- bool Fraction::operator>(const Fraction& f) const {
- return ((Get_Numerator() * f.Get_Denominator() - Get_Denominator() * f.Get_Numerator()) > 0);
- }
- bool Fraction::operator<(const Fraction& f) const {
- return ((Get_Numerator() * f.Get_Denominator() - Get_Denominator() * f.Get_Numerator()) < 0);
- }
- bool Fraction::operator>=(const Fraction& f) const {
- return ((Get_Numerator() * f.Get_Denominator() - Get_Denominator() * f.Get_Numerator()) >= 0);
- }
- bool Fraction::operator<=(const Fraction& f) const {
- return ((Get_Numerator() * f.Get_Denominator() - Get_Denominator() * f.Get_Numerator()) <= 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement