Basic Java Program Help

• October 6th, 2009, 03:53 PM
roaster
Basic Java Program Help
Hello, I really need some help on some Java programming homework that is due tonight. Here is the homework:

Your task in this homework is to compute the roots of a quadratic, using the quadratic formula. Your program should read in three double values, the coefficients of the x-squared term, the linear term and the constant term respectively. These values will be separated by blanks in the test input. It should compute the two real roots and display them, one to a line. The first root displayed should be the one where you add the square root of the discriminant. You may assume that the quadratics tested will all have real roots. These roots should be displayed to exactly 4 places past the decimal point, with a leading zero shown before the decimal point if it is between -1.0 and 1.0. Your program should display a single blank line as a prompt to make it possible to type in numbers.

I think I understand how to do this all except for the numbers. All three numbers will be written on the same line separated by a space. So, I think that I should use blankLoc. I understand how to use this for the first blank, but what is the code that I should use to get the second and the third numbers. Any help with this program will be greatly appreciated.

Here is my code so far:
Code :

```public class Quadratic { public static void main(String[] args) { //Declare and Initialize Scanner Scanner scan = new Scanner(in);   //Read in Values double values = scan.nextDouble();   //Separate Values double blankLoc = values.indexOf(' '); double a = values.substring(0, blankLoc); double b = values.substring(blankLoc, blankLoc); double c = values.substring(blankLoc     //Discriminant: (b*b) - (4*a*c)+ //Display Answers out.println } }```
I am confused where the double b and double c variables are being separated from the input. Please Help.

Thank You,
Roaster
• October 6th, 2009, 10:28 PM
helloworld922
Re: Basic Java Program Help
Do you have to read in the entire formula? Or can you ask the user for separate values? The latter is going to be much much easier.

Code :

```public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Enter a: "); double a = scan.nextDouble(); System.out.println("Enter b: "); double b = scan.nextDouble(); System.out.println(Enter c: "); double c = scan.nextDouble();   // compute quadratic ... }```

If you must extract all the numbers from a single string, then you can still use the Scanner so long as they are separated somehow (usually spaces), and there is nothing else in the string.

Code :

```String values = "1.0 2.3 4.5"; // a = 1, b = 2.3, c = 4.5 Scanner reader = new Scanner(values); double a = values.nextDouble(); double b = values.nextDouble(); double c = values.nextDouble();```

However, if the given string is like this:
"1.0X^2 + 3.5X + 2 = 0"
, you'll have an extremely hard time extracting the numbers you want. It's not impossible, but I doubt that's what your teacher wants from you. If you really want to know, try doing a google search on regular expressions.