Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //*******************************************************************
- // Java compiler created in PHP to quickly and safely test code.
- // NOTE: please read the 'More Info' tab to the right for shortcuts.
- //*******************************************************************
- import java.util.StringTokenizer;
- public class Fraction
- {
- private int numerator, denominator;
- public Fraction()
- {
- numerator = 0;
- denominator = 1;
- }
- public Fraction(Fraction c)
- {
- numerator = c.numerator;
- denominator = c.denominator;
- }
- public Fraction(int num)
- {
- numerator = num;
- denominator = 1;
- }
- public Fraction(int num, int denom)
- {
- numerator = (denom < 0 ? -num : num);
- if (denom == 0) {
- denominator = 1;
- }
- denominator = (denom < 0 ? -denom : denom);
- reduce();
- }
- public String toString()
- {
- return numerator + "/" + denominator;
- }
- public boolean equals ( Object x )
- {
- if ( x instanceof Fraction )
- {
- Fraction z = (Fraction)x;
- return numerator == z.numerator && denominator == z.denominator;
- }
- return false;
- }
- private void reduce()
- {
- int n = numerator, d = denominator, largest;
- if (numerator < 0)
- {
- n = -numerator;
- }
- if (n > d)
- {
- largest = n;
- }
- else
- {
- largest = d;
- }
- int gcd = 0;
- for (int i = largest; i >= 2; i--)
- {
- if (numerator % i == 0 && denominator % i == 0)
- {
- gcd = i;
- break;
- }
- }
- if (gcd != 0)
- {
- numerator /= gcd;
- denominator /= gcd;
- }
- }
- public Fraction add (Fraction addF)
- {
- Fraction r = new Fraction((numerator * addF.denominator) +
- (addF.numerator * denominator),
- (denominator * addF.denominator));
- return r;
- }
- public Fraction multiply(Fraction m)
- {
- Fraction product = new Fraction();
- product.numerator = numerator * m.numerator;
- product.denominator = denominator * m.denominator;
- product.reduce();
- return product;
- }
- public Fraction subtract(Fraction s)
- {
- int num = numerator * s.denominator - s.numerator *
- denominator;
- int denom = denominator * s.denominator;
- Fraction result = new Fraction(num, denom);
- result.reduce();
- return result;
- }
- public static void main ( String args[] )
- {
- Fraction c1 = new Fraction();
- System.out.println(c1.toString());
- Fraction c2 = new Fraction(c1);
- System.out.println(c2.toString() + " This is a copied constructor");
- Fraction c3 = new Fraction(1, 5);
- Fraction c4 = new Fraction(6, 10);
- Fraction c5 = new Fraction();
- c5 = c3.add(c4);
- System.out.println(c5.toString() + " This was an added fraction");
- c5 = c3.multiply(c4);
- System.out.println(c5.toString() + " This was a multiplied fraction");
- c5 = c3.subtract(c4);
- System.out.println(c5.toString() + " This was a subtracted fraction");
- System.out.println(c3.toString());
- System.out.println(c1.equals(c2));
- System.out.println(c1.equals(c3));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement