Advertisement
Guest User

Untitled

a guest
Oct 6th, 2015
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1. //*******************************************************************
  2. // Java compiler created in PHP to quickly and safely test code.
  3. // NOTE: please read the 'More Info' tab to the right for shortcuts.
  4. //*******************************************************************
  5.  
  6. import java.util.StringTokenizer;
  7.  
  8. public class Fraction
  9. {
  10. private int numerator, denominator;
  11.  
  12. public Fraction()
  13. {
  14. numerator = 0;
  15. denominator = 1;
  16. }
  17.  
  18. public Fraction(Fraction c)
  19. {
  20. numerator = c.numerator;
  21. denominator = c.denominator;
  22. }
  23.  
  24. public Fraction(int num)
  25. {
  26. numerator = num;
  27. denominator = 1;
  28. }
  29.  
  30. public Fraction(int num, int denom)
  31. {
  32. numerator = (denom < 0 ? -num : num);
  33. if (denom == 0) {
  34. denominator = 1;
  35. }
  36. denominator = (denom < 0 ? -denom : denom);
  37. reduce();
  38. }
  39.  
  40. public String toString()
  41. {
  42. return numerator + "/" + denominator;
  43. }
  44.  
  45. public boolean equals ( Object x )
  46. {
  47. if ( x instanceof Fraction )
  48. {
  49. Fraction z = (Fraction)x;
  50. return numerator == z.numerator && denominator == z.denominator;
  51. }
  52. return false;
  53. }
  54.  
  55. private void reduce()
  56. {
  57.  
  58. int n = numerator, d = denominator, largest;
  59. if (numerator < 0)
  60. {
  61. n = -numerator;
  62. }
  63. if (n > d)
  64. {
  65. largest = n;
  66. }
  67. else
  68. {
  69. largest = d;
  70. }
  71.  
  72. int gcd = 0;
  73. for (int i = largest; i >= 2; i--)
  74. {
  75. if (numerator % i == 0 && denominator % i == 0)
  76. {
  77. gcd = i;
  78. break;
  79. }
  80. }
  81.  
  82. if (gcd != 0)
  83. {
  84. numerator /= gcd;
  85. denominator /= gcd;
  86. }
  87. }
  88.  
  89. public Fraction add (Fraction addF)
  90. {
  91.  
  92. Fraction r = new Fraction((numerator * addF.denominator) +
  93. (addF.numerator * denominator),
  94. (denominator * addF.denominator));
  95. return r;
  96.  
  97. }
  98.  
  99. public Fraction multiply(Fraction m)
  100. {
  101.  
  102. Fraction product = new Fraction();
  103.  
  104. product.numerator = numerator * m.numerator;
  105.  
  106. product.denominator = denominator * m.denominator;
  107.  
  108. product.reduce();
  109. return product;
  110.  
  111. }
  112.  
  113. public Fraction subtract(Fraction s)
  114. {
  115. int num = numerator * s.denominator - s.numerator *
  116. denominator;
  117. int denom = denominator * s.denominator;
  118. Fraction result = new Fraction(num, denom);
  119. result.reduce();
  120. return result;
  121. }
  122.  
  123. public static void main ( String args[] )
  124. {
  125.  
  126. Fraction c1 = new Fraction();
  127. System.out.println(c1.toString());
  128.  
  129. Fraction c2 = new Fraction(c1);
  130. System.out.println(c2.toString() + " This is a copied constructor");
  131.  
  132. Fraction c3 = new Fraction(1, 5);
  133. Fraction c4 = new Fraction(6, 10);
  134.  
  135. Fraction c5 = new Fraction();
  136. c5 = c3.add(c4);
  137.  
  138.  
  139.  
  140. System.out.println(c5.toString() + " This was an added fraction");
  141.  
  142. c5 = c3.multiply(c4);
  143. System.out.println(c5.toString() + " This was a multiplied fraction");
  144.  
  145. c5 = c3.subtract(c4);
  146. System.out.println(c5.toString() + " This was a subtracted fraction");
  147.  
  148. System.out.println(c3.toString());
  149. System.out.println(c1.equals(c2));
  150. System.out.println(c1.equals(c3));
  151. }
  152.  
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement