Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Using Java ((Abstract Class and Interface)) 13.17 (Math: The complex class) A co

ID: 638819 • Letter: U

Question

Using Java ((Abstract Class and Interface))
13.17 (Math: The complex class)

A complaex number is a number in the from a + bi,
where a and b are real number i is square root of -1 . the number a and b are known
as the real part and imaginary oart of the comlex number, respectively, you can
perform addition, subtraction, multiplcation, and divison for complex number using the fllowing formulas:

a + bi + c + di = ( a + c) + (b + d )i
a - bi - c - di = ( a - c) - (b - d )i
(a + bi) * (c + di) = ( ac - bd ) + (bc + ad )i
(a + bi) / (c + di) = (ac + bd ) / (c^2 + d^2 ) + (bc - ad) i/ (c^2 + d^2)
you can also obtain the absolut value for a coplaex number using the fllowing formula:
   |a + bi| = square root a^2 + b^2

(A complaex number can be interpreted as a point on plane by identifying the (a,b)
values as the coordinates of the point. The absolute of the number corresponds to the
distance of the point to the origin.) Desing a class named complex for representing complex
numbers and the method add, subtract, multiply, divide and ads for performing complex- number
oprations and override toString method for retuning a sting repre- sentation for Complex number.
The toSring method return (a + bi) as string. if b is 0, it simply returns a. Your Copmlex class
should also implement the Cloneable interface.

Explanation / Answer

public class ComplexDemo {
/** The program */
public static void main(String[] args) {
    Complex c = new Complex(3, 5);
    Complex d = new Complex(2, -2);
    System.out.println(c);
    System.out.println(c + ".getReal() = " + c.getReal());
    System.out.println(c + " + " + d + " = " + c.add(d));
    System.out.println(c + " + " + d + " = " + Complex.add(c, d));
    System.out.println(c + " * " + d + " = " + c.multiply(d));
    System.out.println(Complex.divide(c, d));
}
}


/** A class to represent Complex Numbers. A Complex object is
* immutable once created; the add, subtract and multiply routines
* return newly-created Complex objects containing the results.
*
*
*/
class Complex {
/** The real part */
private double r;
/** The imaginary part */
private double i;

/** Construct a Complex */
Complex(double rr, double ii) {
    r = rr;
    i = ii;
}

/** Display the current Complex as a String, for use in
   * println() and elsewhere.
   */
public String toString() {
    StringBuffer sb = new StringBuffer().append(r);
    if (i>0)
      sb.append('+'); // else append(i) appends - sign
    return sb.append(i).append('i').toString();
}

/** Return just the Real part */
public double getReal() {
    return r;
}
/** Return just the Real part */
public double getImaginary() {
    return i;
}
/** Return the magnitude of a complex number */
public double magnitude() {
    return Math.sqrt(r*r + i*i);
}

/** Add another Complex to this one
   */
public Complex add(Complex other) {
    return add(this, other);
}

/** Add two Complexes
   */
public static Complex add(Complex c1, Complex c2) {
    return new Complex(c1.r+c2.r, c1.i+c2.i);
}

/** Subtract another Complex from this one
   */
public Complex subtract(Complex other) {
    return subtract(this, other);
}

/** Subtract two Complexes
   */
public static Complex subtract(Complex c1, Complex c2) {
    return new Complex(c1.r-c2.r, c1.i-c2.i);
}

/** Multiply this Complex times another one
   */
public Complex multiply(Complex other) {
    return multiply(this, other);
}

/** Multiply two Complexes
   */
public static Complex multiply(Complex c1, Complex c2) {
    return new Complex(c1.r*c2.r - c1.i*c2.i, c1.r*c2.i + c1.i*c2.r);
}

/** Divide c1 by c2.
   *
   */
public static Complex divide(Complex c1, Complex c2) {
    return new Complex(
      (c1.r*c2.r+c1.i*c2.i)/(c2.r*c2.r+c2.i*c2.i),
      (c1.i*c2.r-c1.r*c2.i)/(c2.r*c2.r+c2.i*c2.i));
}

/* Compare this Complex number with another
   */
public boolean equals(Object o) {
    if (!(o instanceof Complex))
      throw new IllegalArgumentException(
          "Complex.equals argument must be a Complex");
    Complex other = (Complex)o;
    return r == other.r && i == other.i;
}

/* Generate a hashCode; not sure how well distributed these are.
   */
public int hashCode() {
    return (int)( r) | (int)i;
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote