fork download
  1. //Carlos gutierrez
  2. //Andres Collazos
  3.  
  4. #include <iostream>
  5. #include <math.h>
  6.  
  7. typedef long long int64;
  8.  
  9. using namespace std;
  10.  
  11. class Fraccion {
  12. int64 num;
  13. int64 den;
  14.  
  15. public:
  16.  
  17. //CONSTRUCTORES
  18. Fraccion()
  19. {
  20. num = 0;
  21. den = 1;
  22. }
  23.  
  24. Fraccion(int a, int b)
  25. {
  26. num = a;
  27. den = b;
  28. }
  29.  
  30. int64 gcd(int64 a, int64 b)
  31. {
  32. if(b == 0)
  33. return a;
  34. return gcd(b, a % b);
  35. }
  36.  
  37. Fraccion simp()
  38. {
  39. int64 d = gcd(this->num, this->den);
  40.  
  41. this->num /= d;
  42. this->den /= d;
  43.  
  44. return *this;
  45. }
  46.  
  47. void show()
  48. {
  49. cout << num << "/" << den << endl;
  50. }
  51.  
  52. //SOBRECARGA DE OPERADORES
  53. Fraccion operator+(Fraccion fr)
  54. {
  55. Fraccion tmp;
  56. tmp.num = (this->num * fr.den) + (this->den * fr.num);
  57. tmp.den = (this->den * fr.den);
  58. return tmp.simp();
  59. }
  60.  
  61. Fraccion operator-(Fraccion fr)
  62. {
  63. Fraccion tmp;
  64. tmp.num = (this->num * fr.den) - (this->den * fr.num);
  65. tmp.den = (this->den * fr.den);
  66. return tmp.simp();
  67. }
  68.  
  69. Fraccion operator/(Fraccion fr)
  70. {
  71. Fraccion tmp;
  72. tmp.num = (this->num * fr.den);
  73. tmp.den = (this->den * fr.num);
  74. return tmp.simp();
  75. }
  76.  
  77. Fraccion operator*(Fraccion fr)
  78. {
  79. Fraccion tmp;
  80. tmp.num = (this->num * fr.num);
  81. tmp.den = (this->den * fr.den);
  82. return tmp.simp();
  83. }
  84. };
  85.  
  86. int main()
  87. {
  88. Fraccion fr1(2,8),fr2(93,15),fr3;
  89.  
  90. cout << "Fraccion 1: " << endl;
  91. fr1.show();
  92. cout << "Fraccion 1 simplificada: " << endl;
  93. fr1.simp().show();
  94.  
  95. cout << endl;
  96.  
  97. cout << "Fraccion 2: " << endl;
  98. fr2.show();
  99. cout << "Fraccion 2 simplificada: " << endl;
  100. fr2.simp().show();
  101.  
  102. cout << endl;
  103.  
  104. fr3 = fr1 + fr2;
  105. fr3.show();
  106. fr3 = fr1 - fr2;
  107. fr3.show();
  108. fr3 = fr1 / fr2;
  109. fr3.show();
  110. fr3 = fr1 * fr2;
  111. fr3.show();
  112.  
  113. return 0;
  114. }
  115.  
Success #stdin #stdout 0s 3348KB
stdin
Standard input is empty
stdout
Standard output is empty