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

UptoLike

12
задают неправильную или сократимую дробь, в методе происходит
выделение целой части, а затем осуществляется сокращение.
// метод преобразования дроби в смешанный вид
void GetMixedView()
{
GetIntPart(); // выделение целой части числа
Cancellation(); // сокращение дроби
}
Если числитель дроби больше знаменателя, то выделяется целая часть:
// метод выделения целой части рационального числа
void GetIntPart()
{
if(numerator >= denominator)
{
intPart += (numerator / denominator);
numerator %= denominator;
}
}
Сокращение дроби осуществляется путем деления числителя и
знаменателя дроби на их наибольший общий делитель, который вычисляется
с помощью алгоритма Евклида.
// метод сокращения рациональной дроби
void Cancellation()
{
if(numerator != 0)
{
int m = denominator,
n = numerator,
ost = m%n;
// вычисление НОД(числителя, знаменателя)
// алгоритмом Евклида
while(ost != 0)
{
m = n;
n = ost;
ost = m % n;
}
int nod = n;
if(nod != 1)
{
numerator /= nod;
denominator /= nod;
}
}
}
задают неправильную или сократимую дробь, в методе происходит
выделение целой части, а затем осуществляется сокращение.

  // метод преобразования дроби в смешанный вид
  void GetMixedView()
  {
     GetIntPart();        // выделение целой части числа
     Cancellation();      // сокращение дроби
  }

       Если числитель дроби больше знаменателя, то выделяется целая часть:

  // метод выделения целой части рационального числа
  void GetIntPart()
  {
     if(numerator >= denominator)
     {
        intPart += (numerator / denominator);
        numerator %= denominator;
     }
   }

     Сокращение дроби осуществляется путем деления числителя и
знаменателя дроби на их наибольший общий делитель, который вычисляется
с помощью алгоритма Евклида.

  // метод сокращения рациональной дроби
  void Cancellation()
  {
     if(numerator != 0)
     {
        int m = denominator,
            n = numerator,
            ost = m%n;
        // вычисление НОД(числителя, знаменателя)
        // алгоритмом Евклида
        while(ost != 0)
        {
           m = n;
            n = ost;
            ost = m % n;
        }
        int nod = n;
        if(nod != 1)
        {
           numerator /= nod;
            denominator /= nod;
        }
     }
  }
                                                                         12