Пример #1
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);
}
Пример #2
0
CRational const operator /(CRational const &rational1, CRational const &rational2)
{
	return (CRational(rational1.GetNumerator() * rational2.GetDenominator()
		, rational1.GetDenominator() * rational2.GetNumerator()));
}
Пример #3
0
bool const operator <(CRational const &rational1, CRational const &rational2)
{
	return (rational1.GetNumerator() * rational2.GetDenominator() 
		< rational2.GetNumerator() * rational1.GetDenominator());
}
Пример #4
0
bool const operator ==(CRational const &rational1, CRational const &rational2)
{
	return (rational1.GetNumerator() == rational2.GetNumerator() 
		&& (rational1.GetDenominator() == rational2.GetDenominator()));
}
Пример #5
0
void VerifyRational(const CRational & r, int expectedNumerator, int expectedDenominator)
{
	BOOST_CHECK_EQUAL(r.GetNumerator(), expectedNumerator);
	BOOST_CHECK_EQUAL(r.GetDenominator(), expectedDenominator);
}
Пример #6
0
// task 10 == and !=
bool const operator ==(const CRational & firstNumber, const CRational & secNumber)
{
	return ((firstNumber.GetNumerator() == secNumber.GetNumerator())
		&& (firstNumber.GetDenominator() == secNumber.GetDenominator()));
}
Пример #7
0
const bool operator > (const CRational &num1, const CRational &num2)
{
	const unsigned lcm = LCM(num1.GetDenominator(), num2.GetDenominator());
	return (num1.GetNumerator() * (lcm / num1.GetDenominator()) > num2.GetNumerator() * (lcm / num2.GetDenominator()));
}
Пример #8
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);
}
Пример #9
0
const bool operator == (const CRational &num1, const CRational &num2)
{
	return (num1.GetNumerator() == num2.GetNumerator() && num1.GetDenominator() == num2.GetDenominator());
}
Пример #10
0
//////////////////////////////////////////////////////////////////////////
// TODO: 8. Реализовать оператор /
const CRational operator / (const CRational &num1, const CRational &num2)
{
	return CRational(num1.GetNumerator() * num2.GetDenominator(), num2.GetNumerator() * num1.GetDenominator());
}
Пример #11
0
	void CheckEquality(CRational const &num1, CRational const &num2)
	{
		BOOST_CHECK_EQUAL(num1.GetNumerator(), num2.GetNumerator());
		BOOST_CHECK_EQUAL(num1.GetDenominator(), num2.GetDenominator());
	}
Пример #12
0
bool const operator<(const CRational & rational1, const CRational & rational2)
{
	return rational1.GetNumerator() * rational2.GetDenominator() < rational1.GetDenominator() * rational2.GetNumerator();
}
Пример #13
0
bool const operator==(const CRational & rational1, const CRational & rational2)
{
	return rational1.GetNumerator() == rational2.GetNumerator() && rational1.GetDenominator() == rational2.GetDenominator();
}