Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. struct rat
  7. {
  8. int num;
  9. int den;
  10. void makerat(int, int);
  11. int numer();
  12. int denom();
  13. void printrat();
  14. bool isEqual(int,int);
  15. };
  16.  
  17. //bool rat::isEqual(rat x, rat y)
  18. //{
  19. // double test = static_cast<double>(a) / (double)(1.0 * b);
  20. // if(test >= 1)
  21. //}
  22.  
  23. void rat::printrat()
  24. {
  25. cout << num << "/" << den << endl;
  26.  
  27. }
  28.  
  29. int gcd(int a, int b)
  30. {
  31. while (a!=b)
  32. if (a > b) a = a-b;
  33. else b = b-a;
  34. return a;
  35. }
  36.  
  37. void rat::makerat(int a, int b)
  38. {
  39. if (a == 0)
  40. {
  41. num = 0;
  42. den = b;
  43. }
  44. else
  45. {
  46. int g = gcd(abs(a), abs(b));
  47.  
  48. if (a>0 && b>0 || a<0 && b < 0)
  49. {
  50. num = abs(a)/g;
  51. den = abs(b)/g;
  52. }
  53. else
  54. {
  55. num = - abs(a)/g;
  56. den = abs(b)/g;
  57. }
  58. }
  59. }
  60.  
  61. int rat::numer()
  62. {
  63. return num;
  64. }
  65.  
  66. int rat::denom()
  67. {
  68. return den;
  69. }
  70.  
  71.  
  72. rat sumrat(rat& r1, rat& r2)
  73. {
  74. rat r;
  75. r.makerat(r1.numer() * r2.denom() + r2.numer() * r1.denom(), r1.denom() * r2.denom());
  76. return r;
  77. }
  78.  
  79. rat subrat(rat& r1, rat& r2)
  80. {
  81. rat r;
  82. r.makerat(r1.numer() * r2.denom() - r2.numer() * r1.denom(), r1.denom() * r2.denom());
  83. return r;
  84. }
  85.  
  86. rat multrat(rat& r1, rat& r2)
  87. {
  88. rat r;
  89. r.makerat(r1.numer()*r2.numer(), r1.denom()*r2.denom());
  90. return r;
  91. }
  92.  
  93. rat quotrat(rat& r1, rat& r2)
  94. {
  95. rat r;
  96. r.makerat(r1.numer()*r2.denom(), r1.denom()*r2.numer());
  97. return r;
  98. }
  99.  
  100.  
  101.  
  102. int main()
  103. {
  104. int a1,b1,a2,b2;
  105. cout<<"Vavedete chislitelia i znamenatelia na pyrwoto chislo: "<<endl;
  106. cin>>a1>>b1;
  107. cout<<"Vavedete chislitelia i znamenatelia na vtoroto chislo: "<<endl;
  108. cin>>a2>>b2;
  109. rat r1;
  110. r1.makerat(a1,b1);
  111. rat r2;
  112. r2.makerat(a2,b2);
  113. sumrat(r1, r2).printrat();
  114. subrat(r1, r2).printrat();
  115. multrat(r1, r2).printrat();
  116. quotrat(r1, r2).printrat();
  117. return 0;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement