Write a program instead of using integers, use rationals. You will need to use t
ID: 3544238 • Letter: W
Question
Write a program instead of using integers, use rationals. You will need to use the split method in the String class. Converting, Replacing, and Spitting strings, to retrieve the numerator string and denominator string, and convert strings into integers using the Integer.parseInt method.
I AM HAVING TROUBLE WITH MY PROGRAM DISPLAYING THE ANSWER. THIS IS MY PROGRAM!
public class RationalNumberCalculator {
public static void main(String[] args) {
int numerator1, numerator2;
int denominator1, denominator2;
int NUMERATOR, DENOMINATOR;
if (args.length !=1)
{
System.out.println("Usage: java Exercise 15-18 RationalNumber1 operator RationalNumber2");
System.exit(0);
}
String []str=args[0].split("/,+");
numerator1 = Integer.parseInt(str[0].charAt(0) + "");
denominator1 = Integer.parseInt(str[0].charAt(2) + "");
numerator2 = Integer.parseInt(str[0].charAt(6) + "");
denominator2 = Integer.parseInt(str[0]. charAt(8) + "");
System.out.print(numerator1 + "/" + denominator1 + str[0].charAt(4) + numerator2 + "/" + denominator2 + " = ");
switch (str[0].charAt(4))
{
case '+': NUMERATOR=numerator1*denominator2+numerator2*denominator1;
DENOMINATOR=denominator1*denominator2;
System.out.println(NUMERATOR + "/" + DENOMINATOR);
break;
case '-': NUMERATOR=numerator1*denominator2-numerator2*denominator1;
DENOMINATOR=denominator1*denominator2;
System.out.println(NUMERATOR + "/" + DENOMINATOR);
break;
case '*': NUMERATOR=numerator1*numerator2;
DENOMINATOR=denominator1*denominator2;
System.out.println(NUMERATOR + "/" + DENOMINATOR);
break;
case '/': NUMERATOR=numerator1/denominator2;
DENOMINATOR=denominator1*numerator2;
System.out.println(NUMERATOR + "/" + DENOMINATOR);
}
}
}
Explanation / Answer
public class RationalNumberCalculator
{
public static void main(String[] args)
{
int numerator1, numerator2;
int denominator1, denominator2;
int NUMERATOR, DENOMINATOR;
if(args.length !=3)
{
System.out.println("Usage: java Exercise 15-18 RationalNumber1 operator RationalNumber2");
System.exit(0);
}
String[] RN1=args[0].split("/");
String[] RN2 = args[2].split("/");
char ch = args[1].charAt(0);
numerator1 = Integer.parseInt(RN1[0]);
denominator1 = Integer.parseInt(RN1[1]);
numerator2 = Integer.parseInt(RN2[0]);
denominator2 = Integer.parseInt(RN2[1]);
System.out.print(numerator1 + "/" + denominator1 + ch+ numerator2 + "/" + denominator2 + " = ");
switch(ch)
{
case '+': NUMERATOR=numerator1*denominator2+numerator2*denominator1;
DENOMINATOR=denominator1*denominator2;
System.out.println(NUMERATOR + "/" + DENOMINATOR);
break;
case '-': NUMERATOR=numerator1*denominator2-numerator2*denominator1;
DENOMINATOR=denominator1*denominator2;
System.out.println(NUMERATOR + "/" + DENOMINATOR);
break;
case '*': NUMERATOR=numerator1*numerator2;
DENOMINATOR=denominator1*denominator2;
System.out.println(NUMERATOR + "/" + DENOMINATOR);
break;
case '/': NUMERATOR=numerator1/denominator2;
DENOMINATOR=denominator1*numerator2;
System.out.println(NUMERATOR + "/" + DENOMINATOR);
default: System.out.println("unknow symbol"); break;
} //end switch
} // end main
} // end class
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.