Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include<istream>
- using namespace std;
- class Fraction {
- public:
- Fraction(int numerator, int denominator);
- string toString();
- double toDouble();
- Fraction plus(Fraction that);
- Fraction minus(Fraction that);
- Fraction times(Fraction that);
- Fraction by(Fraction that);
- private: int numerator; int denominator;
- void reduce(int num, int den) {
- int x = num + den;
- for (int i = x; i > 0; i--) {
- if (num % i == 0 && den % i == 0){
- num = num / i;
- den = den / i;
- }
- }
- };
- };
- Fraction::Fraction(int numerator, int denominator) {
- this->numerator = numerator;
- this->denominator = denominator;
- }
- Fraction Fraction::plus(Fraction that) {
- int num = this->numerator + that.denominator;
- int den = this->denominator + that.denominator;
- Fraction result(num, den);
- result.reduce(num, den);
- cout << "add" << result<< endl;
- return result;
- }
- Fraction Fraction::minus(Fraction that) {
- int num = this->numerator - that.denominator;
- int den = this->denominator - that.denominator;
- Fraction result(num, den);
- result.reduce(num, den);
- cout << "minus" << result << endl;
- return result;
- }
- Fraction Fraction::times(Fraction that) {
- int num = this->numerator * that.denominator;
- int den = this->denominator * that.denominator;
- Fraction result(num, den);
- result.reduce(num, den);
- cout << "times" << result << endl;
- return result;
- }
- Fraction Fraction::by(Fraction that) {
- int num = this->numerator / that.denominator;
- int den = this->denominator / that.denominator;
- Fraction result(num, den);
- result.reduce(num, den);
- cout << "by" << result << endl;
- return result;
- }
- string Fraction::toString() {
- int x = 0;
- if (numerator > denominator) {
- int a = numerator / denominator;
- for (int i = 0; i < a; i++) {
- numerator -= denominator;
- x += 1;
- }
- }
- string y = "";
- if (x > 0) {
- y += to_string(x);
- }
- y += " ";
- y += to_string(numerator);
- y += "/";
- y += to_string(denominator);
- return y;
- }
- double Fraction::toDouble() {
- if (denominator < 0) {
- numerator = numerator * -1;
- denominator = denominator * -1;
- }
- return numerator, denominator;
- }
- int main(void){
- int x, y;
- string input = "";
- getline(cin, input);
- sscanf_s(input.c_str(), "%d / %d", &x, &y);
- Fraction fraction(x, y);
- int x1, y1;
- getline(cin, input);
- sscanf_s(input.c_str(), "%d / %d", &x1, &y1);
- Fraction fraaction(x1, y1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement