# Reducing, Adding , and Subtracting Fractions

• 01-02-2013, 04:04 AM
ohwhatshisfact
Reducing, Adding , and Subtracting Fractions
Code:

```// MathLab03st.java // The Rational Class Program II // This is the student, starting version of the MathLab03 assignment. // There are 5 return methods in the Rational class that have temporary return statements // which allow the program to compile.  Students will need to change these statements. import javax.swing.JOptionPane; public class MathLab03st {         public static void main (String args[])         {                 String strNum1 = JOptionPane.showInputDialog("Enter Numerator 1");                 String strDen1 = JOptionPane.showInputDialog("Enter Denominator 1");                 String strNum2 = JOptionPane.showInputDialog("Enter Numerator 2");                 String strDen2 = JOptionPane.showInputDialog("Enter Denominator 2");                 int num1 = Integer.parseInt(strNum1);                 int den1 = Integer.parseInt(strDen1);                 int num2 = Integer.parseInt(strNum2);                 int den2 = Integer.parseInt(strDen2);                 Rational r1 = new Rational(num1,den1);                 Rational r2 = new Rational(num2,den2);                 Rational r3 = new Rational();                 r3.multiply(r1,r2);                 String mul = r1.getOriginal() + " * " + r2.getOriginal() + "  =  " + r3.getRational();                 r3.divide(r1,r2);                 String div = r1.getOriginal() + " / " + r2.getOriginal() + "  =  " + r3.getRational();                 r3.add(r1,r2);                 String add = r1.getOriginal() + " + " + r2.getOriginal() + "  =  " + r3.getRational();                 r3.subtract(r1,r2);                 String sub = r1.getOriginal() + " - " + r2.getOriginal() + "  =  " + r3.getRational();                 String output = mul + "\n" + div + "\n" + add + "\n" + sub;                 JOptionPane.showMessageDialog(null,output);                 System.exit(0);         } } class Rational {         private int firstNum;        // entered numerator         private int firstDen;        // entered denominator         private int num;                // reduced numerator         private int den;                // reduceddenominator         private int factor;         String tional;         String reduct;         // Rational         public Rational()         {                 firstNum = 1;                 firstDen = 1;                 num = 1;                 den = 1;         }         public Rational(int n, int d)         {                 firstNum = n;                 firstDen = d;                 num = n;                 den = d;                 reduce();         }         private int getGCF(int n1,int n2)         {                 int rem = 0;                 int gcf = 0;                 do                 {                         rem = n1 % n2;                         if (rem == 0)                                 gcf = n2;                         else                         {                                 n1 = n2;                                 n2 = rem;                         }                 }                 while (rem != 0);                 return gcf;         } //        getRational         public String getRational()         {                 String stuff = num + "/" + den;                 return  stuff;         }         private void reduce()         {                 getGCF(num,den);         }         //getDecimal         public double getDecimal()         {                 return (double) firstNum / firstDen;         } //        getOriginal         public String getOriginal()         {                 tional = firstNum + "/" + firstDen;                 return tional;         } //        getNum         public int getNum()         {                 return num;         } //        getDen         public int getDen()         {                 return den;         }         public void multiply(Rational r1, Rational r2)         {                 num = r1.getNum() * r2.getNum();                 den = r1.getDen() * r2.getDen();         }         public void divide(Rational r1, Rational r2)         {                 num = r1.getNum() / r2.getNum();                 den = r1.getDen() / r2.getDen();         }         public void add(Rational r1, Rational r2)         {                 num = r1.getNum() + r2.getNum();                 den = r1.getDen() + r2.getDen();         }         public void subtract(Rational r1, Rational r2)         {                 num = r1.getNum() - r2.getNum();                 den = r1.getDen() - r2.getDen();         } }```
The problem I am having is when I compile the fractions do not add/subtract to the write answer . I am aware this is because I have to have a common denominator , but I'm not sure how to get this either.

Problems:
1. When dividing a fraction by a fraction like so 5/4 divided by 7/5 , I get 0 when the second num/den is larger
2. When adding I get the incorrect answer because I need a common denominator
3. When subtracting I get the incorrect answer because I need a common denominator.
4. Don't know how to reduce the fractions.
• 01-02-2013, 04:30 AM
ohwhatshisfact
Re: Reducing, Adding , and Subtracting Fractions
Alright, I got everything to work except
1. When dividing a fraction by a fraction like so 5/4 divided by 7/5 , I get 0 when the second num/den is larger
4. Don't know how to reduce the fractions.

Here's my code:
Code:

```// MathLab03st.java // The Rational Class Program II // This is the student, starting version of the MathLab03 assignment. // There are 5 return methods in the Rational class that have temporary return statements // which allow the program to compile.  Students will need to change these statements. import javax.swing.JOptionPane; public class MathLab03st {         public static void main (String args[])         {                 String strNum1 = JOptionPane.showInputDialog("Enter Numerator 1");                 String strDen1 = JOptionPane.showInputDialog("Enter Denominator 1");                 String strNum2 = JOptionPane.showInputDialog("Enter Numerator 2");                 String strDen2 = JOptionPane.showInputDialog("Enter Denominator 2");                 int num1 = Integer.parseInt(strNum1);                 int den1 = Integer.parseInt(strDen1);                 int num2 = Integer.parseInt(strNum2);                 int den2 = Integer.parseInt(strDen2);                 Rational r1 = new Rational(num1,den1);                 Rational r2 = new Rational(num2,den2);                 Rational r3 = new Rational();                 r3.multiply(r1,r2);                 String mul = r1.getOriginal() + " * " + r2.getOriginal() + "  =  " + r3.getRational();                 r3.divide(r1,r2);                 String div = r1.getOriginal() + " / " + r2.getOriginal() + "  =  " + r3.getRational();                 r3.add(r1,r2);                 String add = r1.getOriginal() + " + " + r2.getOriginal() + "  =  " + r3.getRational();                 r3.subtract(r1,r2);                 String sub = r1.getOriginal() + " - " + r2.getOriginal() + "  =  " + r3.getRational();                 String output = mul + "\n" + div + "\n" + add + "\n" + sub;                 JOptionPane.showMessageDialog(null,output);                 System.exit(0);         } } class Rational {         private int firstNum;        // entered numerator         private int firstDen;        // entered denominator         private int num;                // reduced numerator         private int den;                // reduced denominator         String tional;         String reduct;         // Rational         public Rational()         {                 firstNum = 1;                 firstDen = 1;                 num = 1;                 den = 1;         }         public Rational(int n, int d)         {                 firstNum = n;                 firstDen = d;                 num = n;                 den = d;                 reduce();         }         private int getGCF(int n1,int n2)         {                 int rem = 0;                 int gcf = 0;                 do                 {                         rem = n1 % n2;                         if (rem == 0)                                 gcf = n2;                         else                         {                                 n1 = n2;                                 n2 = rem;                         }                 }                 while (rem != 0);                 return gcf;         }         private void reduce()         {                 int red = getGCF(num,den);                 int secondnum = num / red;                 int secondden = den / red;         } //        getRational         public String getRational()         {                 String stuff = num/red + "/" + den/red;                 return  stuff;         }         //getDecimal         public double getDecimal()         {                 return (double) firstNum / firstDen;         } //        getOriginal         public String getOriginal()         {                 tional = firstNum + "/" + firstDen;                 return tional;         } //        getNum         public int getNum()         {                 return num;         } //        getDen         public int getDen()         {                 return den;         }         public void multiply(Rational r1, Rational r2)         {                 num = r1.getNum() * r2.getNum();                 den = r1.getDen() * r2.getDen();         }         public void divide(Rational r1, Rational r2)         {                 num = r1.getNum() / r2.getNum();                 den = r1.getDen() / r2.getDen();         }         public void add(Rational r1, Rational r2)         {                 int first = r1.getNum() * r2.getDen();                 int second = r2.getNum() * r1.getDen();                 den = r1.getDen() * r2.getDen();                 num = first + second;         }         public void subtract(Rational r1, Rational r2)         {                 int firstN = r1.getNum() * r2.getDen();                 int secondN = r2.getNum() * r1.getDen();                 den = r1.getDen() * r2.getDen();                 num = firstN - secondN;         } }```
• 01-02-2013, 12:04 PM
JosAH
Re: Reducing, Adding , and Subtracting Fractions
I think your Rational class stinks; it is as if you need a third int to add/multiply/etc/ two other ints.

kind regards,

Jos