Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- struct rat
- {
- int num;
- int den;
- void makerat(int, int);
- int numer();
- int denom();
- void printrat();
- bool isEqual(int,int);
- };
- //bool rat::isEqual(rat x, rat y)
- //{
- // double test = static_cast<double>(a) / (double)(1.0 * b);
- // if(test >= 1)
- //}
- void rat::printrat()
- {
- cout << num << "/" << den << endl;
- }
- int gcd(int a, int b)
- {
- while (a!=b)
- if (a > b) a = a-b;
- else b = b-a;
- return a;
- }
- void rat::makerat(int a, int b)
- {
- if (a == 0)
- {
- num = 0;
- den = b;
- }
- else
- {
- int g = gcd(abs(a), abs(b));
- if (a>0 && b>0 || a<0 && b < 0)
- {
- num = abs(a)/g;
- den = abs(b)/g;
- }
- else
- {
- num = - abs(a)/g;
- den = abs(b)/g;
- }
- }
- }
- int rat::numer()
- {
- return num;
- }
- int rat::denom()
- {
- return den;
- }
- rat sumrat(rat& r1, rat& r2)
- {
- rat r;
- r.makerat(r1.numer() * r2.denom() + r2.numer() * r1.denom(), r1.denom() * r2.denom());
- return r;
- }
- rat subrat(rat& r1, rat& r2)
- {
- rat r;
- r.makerat(r1.numer() * r2.denom() - r2.numer() * r1.denom(), r1.denom() * r2.denom());
- return r;
- }
- rat multrat(rat& r1, rat& r2)
- {
- rat r;
- r.makerat(r1.numer()*r2.numer(), r1.denom()*r2.denom());
- return r;
- }
- rat quotrat(rat& r1, rat& r2)
- {
- rat r;
- r.makerat(r1.numer()*r2.denom(), r1.denom()*r2.numer());
- return r;
- }
- int main()
- {
- int a1,b1,a2,b2;
- cout<<"Vavedete chislitelia i znamenatelia na pyrwoto chislo: "<<endl;
- cin>>a1>>b1;
- cout<<"Vavedete chislitelia i znamenatelia na vtoroto chislo: "<<endl;
- cin>>a2>>b2;
- rat r1;
- r1.makerat(a1,b1);
- rat r2;
- r2.makerat(a2,b2);
- sumrat(r1, r2).printrat();
- subrat(r1, r2).printrat();
- multrat(r1, r2).printrat();
- quotrat(r1, r2).printrat();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement