Back to 111 Main Page

Mobius strip

Assignment 2


Print the requested details of a cone to the screen.

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


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 ints). 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 values of the radius and height are changed.

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 5.0 and your height to 12.0.

What to Submit

Upload your file to Tamarin.

Grading [4 points]

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


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 radius 3.0 and height 4.0. When you change your code to instead initialize your radius variable to 5.0 and your height to 12.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 do powers, such as r3?
There is a way to do it using the Math.pow() function, such as in int cubeVolume = Math.pow(side, 3). However, it's not really necessary for this assignment. You can just compute it "manually": 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.
How do I do the square root (√) again?
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 with a variable or a longer expression.
And how do I do π?
Sorry I didn't get to talk more about this; I forgot to even mention it in Section 001. Use Math.PI and it will give you a very precise version of π. So, for example:
  double lateralSurfaceArea = Math.PI * radius * slantHeight;
where radius and slantHeight are variables you already declared and initialized before this line.

~ztomasze Index : TA Details: ICS111: A02
Last Edited: 03 Sep 2009
©2008 by Z. Tomaszewski.