Hello everyone! I have been running into a lot of issues understanding how to do
ID: 3572636 • Letter: H
Question
Hello everyone! I have been running into a lot of issues understanding how to do this particular Java programming assignment. Would someone mind helping me out? The assignment is as follows:
Write a Java program to calculate the result of one of three operations (minimum, L1 norm, L2 norm) on a vector of three numbers. To begin, have the user input three numbers at the keyboard (e.g. -1 2 3). Then, ask the user to type in an operation (valid operations are “min”, “l1”, or “l2”; all letters are lowercase). Assuming the user types a valid operation, your program should compute and output to the screen the result based upon the three numbers; otherwise output an error. For “min”, the result is the minimum of the three numbers (i.e. -1). For “l1”, the result is the sum of the absolute values of the three numbers (i.e. |-1| + |2| + |3| = 1 + 2 + 3 = 6). For “l2”, the result is the square root of the sum of the squares (i.e. (1)% + (2)% + (3)% = 1 + 4 + 9 = 14 = 3.74).
Example runs:
Enter three numbers: -1 2 3
Enter operation: min
min(-1.00, 2.00, 3.00) = -1.00
Enter three numbers: -1 2 3
Enter operation: l1
l1(-1.00, 2.00, 3.00) = 6.00
Enter three numbers: -1 2 3
Enter operation: l2
l2(-1.00, 2.00, 3.00) = 3.74
Enter three numbers: -1 2 3 Enter operation: foobar
Invalid operation!
Enter three numbers: -1 2 3
Enter operation: MIN
Invalid operation!
Thank you all so much in advance! :)
Explanation / Answer
import java.text.DecimalFormat;
import java.util.Scanner;
public class MathOperations {
public static void main(String[] args) {
System.out.println("Enter 3 numbers");
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int c = in.nextInt();
System.out.println("Enter the operation");
String s = in.next();
// Math.min gives min of 2 numbers
if (s.equals("min"))
System.out.println(Math.min(a, Math.min(b, c)));
else if (s.equals("l1"))
// Math.abs gives absolute value of a number
System.out.println(Math.abs(a) + Math.abs(b) + Math.abs(c));
else if (s.equals("l2"))
// Double.parseDouble parses double according to format here prints
// 2 digits after decimal
// Math.sqrt gives squareroot of a number
System.out.println(
Double.parseDouble(new DecimalFormat(".##").format(Math.sqrt((a * a) + (b * b) + (c * c)))));
else
System.out.println("Invalid option");
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.