;
}. Set (m_hi * d.m_lo + d.m_hi * m_lo, m_lo * d.m_lo); cd;
} CD :: operator + (int num)
{cd; (overflow)
{. Set (get_d () + num); cd;
}. Set (m_hi + num * m_lo, m_lo); cd;
} CD :: operator - (CD d)
{cd; (overflow | | d.overflow)
{. Set (get_d () - d.get_d ()); cd;
}. Set (m_hi * d.m_lo - d.m_hi * m_lo, m_lo * d.m_lo); cd;
} CD :: operator - (int num)
{cd; (overflow)
{. Set (get_d () - num); cd;
}. Set (m_hi - num * m_lo, m_lo); cd;
} CD :: operator * (CD d)
{cd; (overflow | | d.overflow)
{. Set (get_d () * d.get_d ()); cd;
}. Set (m_hi * d.m_hi, m_lo * d.m_lo); cd;
} CD :: operator * (int num)
{cd; (overflow)
{. Set (get_d () * num); cd;
}. Set (m_hi * num, m_lo); cd;
} CD :: operator / (CD d)
{cd; (overflow | | d.overflow)
{. Set (get_d () / d.get_d ()); cd;
}. Set (m_hi * d.m_lo, m_lo * d.m_hi); cd;
} CD :: operator / (int num)
{cd; (overflow)
{. Set (get_d () / num); cd;
}. Set (m_hi, m_lo * num); cd;
} CD :: operator=(CD d)
{(d.overflow)
{(d.get_d ()); * this;
} (d.m_hi, d.m_lo); * this;
} CD :: operator=(int num)
{(num, 1); * this;
} CD :: operator == (CD d)
{(overflow | | d.overflow)
{get_d () == d.get_d ();
} (m_hi == d.m_hi) (m_lo == d.m_lo) true; false;
} CD :: operator == (int num)
{(overflow)
{get_d () == num;
} (m_hi == num) (m_lo == 1) true; false;
} CD :: operator!=(CD d)
{(overflow | | d.overflow)
{get_d ()!=d.get_d ();
} (m_hi == d.m_hi) (m_lo == d.m_lo) false; true;
} CD :: operator!=(int num)
{(overflow)
{get_d ()!=num;
} (m_hi == num) (m_lo == 1) false; true;
} CD :: optim ()
{(overflow) return; _hi *=m_lo / abs (m_lo);// Для знаку_lo=abs (m_lo); (m_hi) / / далі СКОРОЧЕННЯ дробу
{i=0; (1)
{(ldiv (m_hi, mas [i]). rem == 0 && ldiv (m_lo, mas [i]). rem == 0)
{_hi /=mas [i]; _lo /=mas [i];
} ((mas [i + 1]> abs (m_hi) && mas [i + 1]> m_lo) | | i + 1> PR_COUNT - 1) break; + +;
} (abs (m_hi)> mas [PR_COUNT - 1] | | m_lo> mas [PR_COUNT - 1])
{= true; _d=double (m_hi) / m_lo;;
}
}