Example #1
0
std::pair<int, CRational> CRational::ToCompoundFraction() const
{
	int wholeNumber = m_numerator / m_denominator;
	int numerator = m_numerator - (wholeNumber * m_denominator);

	return std::pair<int, CRational>(wholeNumber, CRational(numerator, m_denominator));
}
Example #2
0
std::pair<int, CRational> CRational::ToCompoundFraction()const
{
	int integer = static_cast<int>(ToDouble());
	int numerator = m_numerator - m_denominator * integer;

	return std::make_pair<int, CRational>(std::move(integer), CRational(numerator, m_denominator));
}
Example #3
0
// task 3 binary -
CRational const operator -(const CRational & firstNumber, const CRational & secNumber)
{
	int numerator = (firstNumber.GetNumerator() * secNumber.GetDenominator())
		- (secNumber.GetNumerator() * firstNumber.GetDenominator());
	int denominator = firstNumber.GetDenominator() * secNumber.GetDenominator();
	return CRational(numerator, denominator);
}
Example #4
0
CRational const operator /(CRational const &rational1, CRational const &rational2)
{
	return (CRational(rational1.GetNumerator() * rational2.GetDenominator()
		, rational1.GetDenominator() * rational2.GetNumerator()));
}
Example #5
0
CRational const CRational::operator-()const
{
	return CRational(-m_numerator, m_denominator);
}
Example #6
0
CRational const operator /(int t, CRational const &rat)
{
	return CRational(rat.m_denominator * t, rat.m_numerator);
}
Example #7
0
//7
CRational const operator *(CRational rat1, CRational const &rat2)
{
	return CRational(rat1.m_numerator * rat2.m_numerator, rat1.m_denominator * rat2.m_denominator);
}
Example #8
0
//8
CRational const CRational::operator /(CRational const &rat) const
{
	return CRational(m_numerator * rat.m_denominator, m_denominator * rat.m_numerator);
}
Example #9
0
//////////////////////////////////////////////////////////////////////////
// TODO: 4. Реализовать бинарный -
const CRational operator - (const CRational &num1, const CRational &num2)
{
	const unsigned lcm = LCM(num1.GetDenominator(), num2.GetDenominator());
	return CRational(num1.GetNumerator() * (lcm / num1.GetDenominator()) - num2.GetNumerator() * (lcm / num2.GetDenominator()), lcm);
}
Example #10
0
CRational const operator /(CRational const &rat, int t)
{
	return CRational(rat.m_numerator, rat.m_denominator * t);
}
Example #11
0
//////////////////////////////////////////////////////////////////////////
// TODO: 8. Реализовать оператор /
const CRational operator / (const CRational &num1, const CRational &num2)
{
	return CRational(num1.GetNumerator() * num2.GetDenominator(), num2.GetNumerator() * num1.GetDenominator());
}
Example #12
0
CRational const operator*(const CRational & rational1, const CRational & rational2)
{
	return (CRational(rational1) *= rational2);
}
Example #13
0
CRational & CRational::operator/=(const CRational & other)
{
	*this *= CRational(other.GetDenominator(), other.GetNumerator());
	// to throw the exeption if other numerator equals 0
	return *this;
}
Example #14
0
CRational const CRational::operator-() const
{
	return CRational(-GetNumerator(), GetDenominator());
}
Example #15
0
std::pair<int, CRational> CRational::ToCompoundFraction() const
{
	return { m_numerator / m_denominator, CRational(m_numerator % m_denominator, m_denominator) };
}