(Week 6 Starting Monday October 30 2006)

Hand in date - one week after your scheduled tutorial session in week 6.

Aims and Objectives: Provide an opportunity for students to design and implement a more substantial software system (than those produced for parcticals 1 and 2) that, in addition, requires use of methods contained in the Math class found in the Java API.


Produce a computer program, written in the Java programming language, which determines the distance travelled by a projectile (projected from the ground) given:

  1. Velocity at launch (u), and
  2. Launch angle (angle of elevation) above the horizontal (A).

Assume the following:

Note also that to solve the above we must carry out the following steps.

  1. Calculate the vertical and horizontal components of u (the launch velocity) using the following trigonometric identities:
    Vertical component of launch velocity  (Vu) = u x sinA
    Horizontal component of launch velocity (Hu) = u x cosA
  2. Calculate the time (t) taken for the body to return to the ground using the identity:
    t = (2 x Vu)/a
    where a (deceleration due to gravity) is equivalent to g (10m/s^2 in this case).
  3. Calculate distance (s) traveled from the identity:
    s = Hu x t


A body is projected with a velocity of u = 200 m/s at an angle of elevation A = 30 degrees above the horizontal. Determine the distance traveled by the projectile.

Vu  = 200 x sin30 = 100 (m/s)

Hu = 200 x cos30 = 173.2 (m/s)

t = {2 x 100)/10 = 20 (s)

s = 20 x 173.2051 = 3464.1 (m)


You should prepare a report comprising the following sections:

  1. Requirements: Summary of the above requirements.
  2. Analysis and Design: A short (one paragraph) description of your analysis of the problem including a Class Diagram outlining the class structure for your proposed solution and a set of "summary tables". Detailed designs for the methods you intend to include supported by a Nassi-Shneiderman chart for each.
  3. Implementation: Your Java source files.
  4. Testing: A set of appropriate arithmetic test cases (presented in tabular form) and the output from your program as a result of running these test cases.

All supporting documentation (i.e. excluding your Java source source files) should be prepared as a single Microsoft Word file. Once completed you should "up load" your Java source files (extension .java) and your word document to the CS department's electronic "practical assignment submission" system.

Refer to guidance notes on the execution of COMP101 practicals and the presentation of work if necessary. You might also like to refer to the vertical motion example studied in week 5, and the work on trigonometric ratios studied in week 4.


90% of the marks will be distributed evenly between: Analysis and Design; Implementation; and Testing. The remaining 10% will be awarded for "overall presentation".


  1. Projectile Motion (Drew Dolgert, Michael Fowler).

Created and maintained by Frans Coenen. Last updated 30 October 2006