Assignment 02

Print the requested details of a cone to the screen.

Textbook: 2.4 - 2.5; 3.5
New concepts: operators (again), expressions; `Math` methods and constants.

Steps

Write a program that starts with a radius (r) and a height (h) and prints out the following details for a right circular cone:

• slant height (s): √(r2 + h2)
• volume: 1/3 * πr2h
• lateral surface area: πrs
• total surface area: πr2 + πrs

Use only `double` variables (not `int`s). For π, use the pre-defined Java constant `Math.PI`. You may create additional variables as needed. However all output/results should change appropriately when only the initial value of the radius and/or height variable is changed. So, as in A01a, the values assigned to your radius and height variables will each occur only once in your code.

Print out the radius and the result of each of the above calculations. Print one result per line. Be sure to label what each value is in your output. Thus, your output should be formatted something like this:

```For a cone with radius 3.0 and height 4.0:
Slant height = 5.0
Volume = 37.69911184307752
Lateral surface area = 47.12388980384689
Total surface area = 75.39822368615503
```

When you're done: Submit your code with the radius initialized to 2.5 and height initialized to 6.0.

What to Submit

Upload your `UsernameA02.java` file to Tamarin.

1 - Compiles
Your program compiles successfully (no errors)
1 - Variables
You use a variable, not a literal, for both the radius and the height in all your calculations and printing (0.6). You display the value of the radius and height before you do the rest of the calculations (0.4). All output and results should still be correct if only the initial value of radius or height variable is changed.
2 - Calculations
Program displays the correct results of the 4 additional calculations (with r=2.5 and h=6.0), properly labelled, one per line. (0.5 each)

FAQs

So wait--the program I'm submitting is not going to have the same output as shown above?
Correct. The example above shows how your output should be formatted--each number labelled as to what it is, with one result printed per line. The actual numbers shown, however, will be different for your submission. All the details above are for a cone of r = 3.0 and h = 4.0. When you change your code to instead initialize your radius to 2.5 and your height to 6.0, all of your calculation/results should change accordingly.

The reason I'm having you make this change is just as a check for you to make sure that your output really relies only on the radius and height variables, and not on a few literals accidentally scattered here and there throughout your code. That's the whole point of a variable: change the value in the variable, and your program's behavior/output changes accordingly (hopefully correctly).

How do I use the value of π?
Use `Math.PI` and it will give you a very precise version of π. So, for example:
```  double circumference = 2 * Math.PI * radius;
```
where `radius` is a variable you already declared and initialized before this line.
How do I compute the square root (√)?
Use `Math.sqrt()`. So, to take the square root of 9, you could do something like this:
```  double answer = Math.sqrt(9);
```
You could also replace the literal 9 here with a variable or a longer expression.
How do I compute powers, such as r3?
There is a way to do it using the `Math.pow()` function, such as in `double rSquared = Math.pow(radius, 2)`. However, it's not really necessary for this assignment. You can just compute it "manually" if you want: `radius * radius`.
My volume calculation isn't coming out correctly!
Be careful of integer math. Remember that `System.out.println(1 / 3);` prints out `0`, not `0.3333333`. So you want to use double (floating point) literals, rather than int (integer) literals here.