Can anyone tell me what I did wrong - Java Coding. We had to create a rational n
ID: 3661520 • Letter: C
Question
Can anyone tell me what I did wrong - Java Coding. We had to create a rational number class from a complex number class.
"Rational Numbers
Create a Rational number class in the same style as the Complex number class created in class. That is, implement the following methods:
constructor
add
sub
mul
div
toString
You must also provide a Main class and main method to fully test your Rational number class. "
public class Rational {
int numerator;
int denominator;
public Rational (double num, double den) {
numerator= (int) num;
denominator=(int) den;
}
public Rational add (Rational o) {
return new Rational(numerator + o.numerator, denominator + o.denominator);
}
private Rational conjugate(){
return new Rational(numerator, -denominator);
}
public Rational div (Rational o){
return new Rational ((numerator/denominator)/(numerator/denominator), denominator);
}
public Rational mul(Rational o){
return new Rational(numerator * o.numerator - denominator * o.denominator, numerator * o.denominator + denominator * o.denominator);
}
public Rational sub(Rational o){
return new Rational(numerator - o.numerator, denominator - o.denominator);
}
public String toString(){
return "(" + numerator + "+" + denominator + ")";
}
private double num;
private double den;
}
Explanation / Answer
The program is syntactically correct i:e program has no errors but there are many logical errors in addition, subtraction, multiplication etc. I have commented those lines and added the correct code with a litte explaination.
/* In addition of rational numbers the numerator of first no. is multiplied by the denominator of other plus (+)
numerator of second multiplied by denominator of first whole divided by denominator1*denominator2
(a/b)+(c/d)= (ad+bc)/bd
*/
Here is the updated code
public class Rational {
int numerator;
int denominator;
public Rational (double num, double den) {
numerator= (int) num;
denominator=(int) den;
}
public Rational add (Rational o) {
// return new Rational(numerator + o.numerator, denominator + o.denominator);
/* In addition of rational numbers the numerator of first no. is multiplied by the denominator of other plus (+)
numerator of second multiplied by denominator of first whole divided by denominator1*denominator2
(a/b)+(c/d)= (ad+bc)/bd
*/
return new Rational((numerator * o.denominator)+(o.numerator*denominator), denominator * o.denominator);
}
private Rational conjugate(){
return new Rational(numerator, -denominator);
}
public Rational div (Rational o){
return new Rational (numerator*o.denominator, denominator*o.numerator);
/* In division the numerator of first no. is multiplied by the denominator of other and denominator of first is multiplied by numerator of second
(a/b)/(c/d)= (ad)/bc
*/
}
public Rational mul(Rational o){
//return new Rational(numerator * o.numerator - denominator * o.denominator, numerator * o.denominator + denominator * o.denominator);
/* In Multiplication the two numerator are multiplied divided by product of two denominator
(a/b)*(c/d)= (ab)/bd
*/
return new Rational(numerator * o.numerator, o.denominator * denominator);
}
public Rational sub(Rational o){
//return new Rational(numerator - o.numerator, denominator - o.denominator);
/*
Subtraction is same as addition but with subtraction instead of addition
(a/b)-(c/d)= (ad+bc)/bd
*/
return new Rational((numerator * o.denominator)-(o.numerator*denominator), denominator * o.denominator);
}
public String toString(){
return "(" + numerator + "/" + denominator + ")";
}
private double num;
private double den;
public static void main(String arg[])
{
Rational r1=new Rational(1,2);
Rational r2=new Rational(1,6);
System.out.println("Addition "+r1.add(r2));
System.out.println("Subtraction "+r1.sub(r2));
System.out.println("Multiplication "+r1.mul(r2));
System.out.println("Division "+r1.div(r2));
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.