Concept explainers
(Math: The Complex class) A complex number is a number in the form a + bi, where a and b are real numbers and i is
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) / (c2 + d2) + (bc – ad)i / (c2 + d2)
You can also obtain the absolute value for a complex number using the following formula:
(A complex number can be interpreted as a point on a plane by identifying the (a, b) values as the coordinates of the point. The absolute value of the complex number corresponds to the distance of the point to the origin, as shown in Figure 13.10.)
Design a class named Complex for representing complex numbers and the methods add, subtract, multiply, divide, and abs for performing complex-number operations, and override toString method for returning a string representation for a complex number. The toString method returns (a + bi) as a string. If b is 0, it simply returns a. Your Complex class should also implement Cloneable and Comparable. Compare two complex numbers using their absolute values.
Provide three constructors Complex (a, b), Complex (a), and Complex (). Complex () creates a Complex object for number 0, and Complex (a) creates a Complex object with 0 for b. Also provide the getRealPart() and getImaginaryPart () methods for returning the real part and the imaginary part of the complex number, respectively.
Draw the UML class diagram and implement the class. Write a test program that prompts the user to enter two complex numbers and displays the result of their addition, subtraction, multiplication, division, and absolute value. Here is a sample run:
Enter the first complex number: 3.5 5.5 Enter the second complex number: –3.5 1 (3.5 + 5.5i) + (–3.5 + 1.0i) = 0.0 + 6.5i (3.5 + 5.5i) – (–3.5 + 1.0i) = 7.0 + 4.5i (3.5 + 5.5i) * (–3.5 + 1.0i) = –17.75 + –15.75i (3.5 + 5.5i) / (–3.5 + 1.0i) = –0.5094 + –1.7i |(3.5 + 5.5i)| = 6.519202405202649 |
Want to see the full answer?
Check out a sample textbook solutionChapter 13 Solutions
Introduction to Java Programming and Data Structures, Comprehensive Version, Student Value Edition (11th Edition)
- When you perform arithmetic operations with operands of different types, such as adding an int and a float, ____________. C# chooses a unifying type for the result you must choose a unifying type for the result you must provide a cast you receive an error messagearrow_forwardRewrite the following statements using combined assignment operators: count = count + 1;arrow_forward(Financial: credit card number validation) Credit card numbers follow certain pat- terns. A credit card number must have between 13 and 16 digits. It must start with: 4 for Visa cards 5 for Master cards 37 for American Express cards 6 for Discover cards In 1954, Hans Luhn of IBM proposed an algorithm for validating credit card numbers. The algorithm is useful to determine whether a card number is entered correctly or whether a credit card is scanned correctly by a scanner. Credit card numbers are generated following this validity check, commonly known as the Luhn check or the Mod 10 check, which can be described as follows (for illustra- tion, consider the card number 4388576018402626): 1. Double every second digit from right to left. If doubling of a digit results in a two-digit number, add up the two digits to get a single-digit number. 4388576018402626 → 2 * 2 = 4 → 2 * 2 = 4 → 4 * 2 = 8 → 1 * 2 = 2 6 * 2 = 12 (1+ 2 = 3) → 5 * 2 = 10 (1+ 0 = 1) → 8 * 2 = 16 (1 + 6 = 7) → 4 * 2 = 8arrow_forward
- Rewrite the following statements using combined assignment operators: length = length / 2;arrow_forward(Calculating the Product of Odd Integers) Write an application that calculates the product of the odd integers from 1 to 15.arrow_forward(java programming language) Write a Java program to do the following task: Assign your id number (2017296004) to an integer variable id_num Using reminder operator % on the id_num get the last 2 digits (04) and store it in num If the num is between 0 and 30 (both included), display “You are in Group 1” Otherwise if the num is between 31 and 60 (both included), display “You are in Group 2” Otherwise (num is between 61 and 99 (both included), display “You are in Group 3” Save your file as Q2.Java and upload it.arrow_forward
- (java programming language) Write a Java program to do the following task: Assign your id number (example.. 2014299123) to an integer variable id_num Using reminder operator % on the id_num get the last 5 digits (99123) and store it in num If the num is between 0 and 30,000 (both included), display “You are in Group 1” Otherwise if the num is between 30001 and 60,000 (both included), display “You are in Group 2” Otherwise (num is between 60,001 and 99,999 (both included), display “You are in Group 3” Save your file as Q2.Javaarrow_forward(PYTHON) A Krishnamurthy number is a number which sum of the factorial of its digits is equal to the number itself. For example: Let us consider the number 145. Factorial sum = 1! + 4! + 5! = 1 + 24 + 120 = 145. Therefore 145 is a Krishnamurthy number. Other examples include: 1, 2, 40585. Write a program that does the following: • asks the user to input an integer. • computes whether the number is a Krishnamurthy number. • then finally prints the result. Note: You are not allowed to use the built-in function math.factorial.arrow_forwardint power(int base,int exp); *This function accepts the arguments for base and exponent and returns power. The algorithm is to repeatedly multiply the value of the base to how many time the value of exponent.* For example: Test Input Result printf("%d",power(2,5)); 2 32 5 printf("%d",power(3,4)); 3 81 4 -Use C language, please. Thank you.arrow_forward
- Define the function: int power (int base, int exp); It accepts the arguments for base and exponent and returns power. The algorithm is to repeatedly multiply the value of the base to how many times the value of exponent. Test the function inside main(). Write the complete program. Use C language. For example: Input Result 2 5 32 3 4 81arrow_forwardThe correct statements are: For L = 0, L* = {e} For L = {e}, L* = {e} OL+ = LL* L* = LL+arrow_forwardProblem Description: In the Whimsical Library, each book is enchanted with a magical code to ensure the protection of knowledge. The validation process for these magical codes involves a combination of mathematical spells. The validation process is described as follows: Take the sum of the digits at odd positions from left to right. Take the sum of the squared digits at even positions from left to right. If the absolute difference between the results from step 1 and step 2 is a prime number, the book code is considered valid; otherwise, it is invalid. Example 1: Consider the magical book code 86420137. Step 1. Take the sum of the digits at odd positions from left to right. 8+4+0+3=15 Step 2. Take the sum of the squared digits at even positions from left to right. 6^2+2^2+1^2+7^2=36+4+1+49 = 90 Step 3. If the absolute difference between the results from step 1 and step 2 is a prime number. 115-901 75 (not a prime number) Book code 86420137 is invalid. Example 2: Now, let's examine the…arrow_forward
- C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage LearningMicrosoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,