Write a console program in a module named Projectile
with a Main
subroutine that calculates the trajectory that a projectile will follow.
You will prompt the user for the projectile's initial velocity, its initial angle relative to the horizontal, and the number of time increments to display.
Here is an example output log from your program:
This program computes the trajectory of a projectile given
its initial velocity and angle relative to the horizontal.
Velocity (m/s)? 30
Angle (degrees)? 50
Number of steps? 10
step x y time
----------------------------
0 0.00 0.00 0.00
1 9.03 9.69 0.47
2 18.07 17.23 0.94
3 27.10 22.61 1.41
4 36.14 25.84 1.87
5 45.17 26.92 2.34
6 54.21 25.84 2.81
7 63.24 22.61 3.28
8 72.28 17.23 3.75
9 81.31 9.69 4.22
10 90.35 0.00 4.69
You can compute the x and y components of velocity using the cos and sin of the initial angle, respectively.
The projectile will be pulled downward by gravity with a force of 9.81 m/s2.
Recall that you can compute the displacement of a body in motion using the following formula:
displacement = v t + ½ a t2
The following is a pseudocode description of the process:
x, y, t = 0.
for (the given number of steps):
add time increment to t.
add x increment to x.
reset y to y-velocity * t + 0.5 * -9.81 * t * t.
report step #, x, y, and t.
You should break down your program into several subroutines/functions, each of which helps solve the overall problem.
The output columns should align into 8-space-wide columns, left-aligned.