Практикум по курсу "Объектно-ориентированное программирование" на языке C#. Андрианова А.А - 16 стр.

UptoLike

15
public static bool operator < (Fraction ob1, Fraction ob2)
{
if ((double)ob1 >= (double)ob2)
return false;
return true;
}
public static bool operator >= (Fraction ob1, Fraction ob2)
{
if ((double)ob1 < (double)ob2)
return false;
return true;
}
public static bool operator <= (Fraction ob1, Fraction ob2)
{
if ((double)ob1 > (double)ob2)
return false;
return true;
}
Каждая арифметическая операция (“+, “–“, *, /”) перегружена тремя
методами-операторами для случаев, когда:
операндами операции являются объекты класса Fraction;
первый операнд – дробь, второй – целое число;
первый операнд – целое число, второй – объект-дробь.
Результатом выполнения этих операторов является новая дробь.
Рассмотрим подробнее реализацию операторов сложения.
Оператор сложения двух дробей после формирования результата
осуществляет преобразование к смешанному виду.
// операция сложения двух дробей
static public Fraction operator + (Fraction ob1, Fraction ob2)
{
Fraction res=new Fraction();
res.numerator = ob1.sign * (ob1.intPart * ob1.denominator +
ob1.numerator) * ob2.denominator + ob2.sign *(ob2.intPart *
ob2.denominator + ob2.numerator) * ob1.denominator;
res.denominator = ob1.denominator * ob2.denominator;
if (res.numerator < 0)
{
res.numerator *= -1;
res.sign = -1;
}
res.GetMixedView();
return res;
}
     public static bool operator < (Fraction ob1, Fraction ob2)
     {
        if ((double)ob1 >= (double)ob2)
           return false;
        return true;
     }

     public static bool operator >= (Fraction ob1, Fraction ob2)
     {
        if ((double)ob1 < (double)ob2)
           return false;
        return true;
     }

     public static bool operator <= (Fraction ob1, Fraction ob2)
     {
        if ((double)ob1 > (double)ob2)
           return false;
        return true;
     }

     Каждая арифметическая операция (“+”, “–“, “*”, ”/”) перегружена тремя
методами-операторами для случаев, когда:
         операндами операции являются объекты класса Fraction;
         первый операнд – дробь, второй – целое число;
         первый операнд – целое число, второй – объект-дробь.
     Результатом выполнения этих операторов является новая дробь.
Рассмотрим подробнее реализацию операторов сложения.
     Оператор сложения двух дробей после формирования результата
осуществляет преобразование к смешанному виду.

     // операция сложения двух дробей
     static public Fraction operator + (Fraction ob1, Fraction ob2)
     {
        Fraction res=new Fraction();
        res.numerator = ob1.sign * (ob1.intPart * ob1.denominator +
             ob1.numerator) * ob2.denominator + ob2.sign *(ob2.intPart *
             ob2.denominator + ob2.numerator) * ob1.denominator;
        res.denominator = ob1.denominator * ob2.denominator;
        if (res.numerator < 0)
        {
           res.numerator *= -1;
           res.sign = -1;
        }
        res.GetMixedView();
        return res;
     }
15