Ratio Manipulations in C++ | Set 1 (Arithmetic)
C++ allows us to perform addition, subtraction, multiplication, and division operations on fractions. One method of adding ratios is discussed in the following article – Program to add two fractions. The method used here is tedious and lengthy, so to overcome that a better method was introduced in C++. The <ratio> header file in C++ allows us to manipulate ratios using various inbuilt template alias. The header file was introduced from C++ 11 onwards.
In this article, we will be discussing the Arithmetic Ratio Manipulations in C++. The following functions are used:
- ratio_add
- ratio_subtract
- ratio_multiply
- ratio_divide
1) ratio_add: This template alias is used to add two ratios and return the result in the simplest form. It returns two-member constants, num, and den denoting numerator and denominator.
2) ratio_subtract: This template alias is used to subtract two ratios and return the result in the simplest form. It returns two-member constants, num, and den denoting numerator and denominator. It subtracts ratio2 from ratio1.
CPP
#include <iostream>
#include <ratio> // for ratio manipulation
using namespace std;
int main()
{
typedef ratio<5, 4> ratio1;
typedef ratio<3, 4> ratio2;
typedef ratio_add<ratio1, ratio2> sum;
typedef ratio_subtract<ratio1, ratio2> diff;
cout << "The sum of ratios is : " ;
cout << sum::num << "/" << sum::den;
cout << endl;
cout << "The difference of ratios is : " ;
cout << diff::num << "/" << diff::den;
cout << endl;
return 0;
}
|
Output
The sum of ratios is : 2/1
The difference of ratios is : 1/2
3. ratio_multiply: This template alias is used to multiply two ratios and return the result in the simplest form. It returns two-member constants, num, and den denoting numerator and denominator.
4. ratio_divide: This template alias is used to divide two ratios and return the result in the simplest form. It returns two-member constants, num, and den denoting numerator and denominator. It divides ratio1 by ratio2.
CPP
#include <iostream>
#include <ratio> // for ratio manipulation
using namespace std;
int main()
{
typedef ratio<5, 4> ratio1;
typedef ratio<3, 4> ratio2;
typedef ratio_multiply<ratio1, ratio2> prod;
typedef ratio_divide<ratio1, ratio2> div ;
cout << "The product of ratios is : " ;
cout << prod::num << "/" << prod::den;
cout << endl;
cout << "The division of ratios is : " ;
cout << div ::num << "/" << div ::den;
cout << endl;
return 0;
}
|
Output
The product of ratios is : 15/16
The division of ratios is : 5/3
For Next Set Refer to this article:
Last Updated :
18 Jan, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...