Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream> //input output
- #include <string> // string
- #include <cstdlib> // die
- using namespace std;
- class Rational {
- public:
- Rational(unsigned long long numerator = 0, unsigned long long denominator = 1); // ctor
- unsigned long long getNumerator() const; // getting numerator
- unsigned long long getDenominator() const; // getting denominator
- double getFloatingValue() const; // getting a floating point/decimal value
- const Rational & output() const; // output
- Rational add(const Rational & other) const; // add
- static unsigned long long gcf(unsigned long long a, unsigned long long b); // greatest common factor
- private:
- unsigned long long DeNoMiNaToR, NuMeRaToR;
- }; // class Rational
- // constructor definition goes here
- Rational::Rational(unsigned long long numerator, unsigned long long denominator) {
- unsigned long long tempnum = numerator;
- unsigned long long tempden = denominator;
- for (unsigned long long i = tempden * tempnum; i > 1; i--) {
- if ((tempden % i == 0) && (tempnum % i == 0)) {
- tempden /= i;
- tempnum /= i;
- } // simplifying fractions
- else
- break;
- }
- NuMeRaToR = tempnum;
- DeNoMiNaToR = tempden;
- }
- // output
- const Rational & Rational::output() {
- cout << NuMeRaToR "/" << DeNoMiNaToR << endl;
- }
- // add takes 2 rational functions and adds them together after they've been simplified
- // to add 2 rational functions, formula is ::::::: (A/B) + (C/D) = ((A*D) + (C*B)) / (B*D)
- // Second object in add should be the parameter (when called in main)
- unsigned long long Rational::getNumerator() const { //after simplification
- return NuMeRaToR;
- }
- unsigned long long Rational::getDenominator() const { //after simplification
- return DeNoMiNaToR;
- }
- bool die(const string &msg); // die
- int main() {
- Rational r1;// make a Rational object
- unsigned num, den;
- cout << "Enter numerator, denomintor: ";
- cin >> num >> den; //getting values to pass to get functions
- if (den == 0) die("Division by 0 is illegal"); // c&d
- r1.output();
- // call output function
- // call gcf function
- } // main
- bool die(const string &msg) {
- cout << "Fatal error: " << msg << endl;
- exit(EXIT_FAILURE);
- } // die
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement