第1关:练习-Java顺序结构之无输入求平抛小球与抛出点之间的距离
任务描述
物体以一定的初速度水平方向抛出,如果物体仅受重力作用,这样的运动叫做平抛运动。平抛运动可看作水平方向的匀速直线运动以及竖直方向的自由落体运动的合运动。如图 1 所示。
图 1
假设v_0v0表示水平抛出的初速度,tt表示水平抛出后,小球飞行的时间,gg表示重力加速度。
平抛运动经过 tt 秒的水平位移ss计算公式为: s = v_0ts=v0t
垂直方向位移hh的计算公式为: h = \frac{gt^2}{2}h=2gt2
那么经过tt秒后,小球与抛出点距离dd的计算公式为: d = \sqrt{s^2+h^2}d=s2+h2
本关任务:一小球以 10 米/秒的水平速度平抛,重力加速度取 9.8 米/秒^22,在忽略空气阻力的情况下,求经过时间 3 秒后,小球所在位置与抛出点之间的距离 (假设小球距地面足够高)。
输出格式:小球所在位置与抛出点之间的距离为 xxx 米。
其中 xxx 为求出的距离。
编程要求
仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。
小提示:
Java 的 Math 类提供了幂运算和开平方两种方法,可以帮我们解决本关的一些问题,在这里简单介绍一下,在后面的实训中我们会详细为大家介绍 Math 类的使用。
如何求取2^323 和 0.5^30.53?
例子:
// Math.pow(x, y) Java 的幂运算,意思为求x的y次方,x和y可以是整型也可以是浮点型,该方法返回一个浮点型的值
double a = Math.pow(2, 3);// 求2的3次方,并将其赋值给一个double型的变量a
System.out.print(a);
执行结果:8.0
如何求取\sqrt44?
例子:
// Math.sqrt(x) Java 开平方的方法,意思为求x的平方根,x可以是整型也可以是浮点型,该方法返回一个浮点型的值
double a = Math.sqrt(4);// 求4的平方根,并将其赋值给一个double型的变量a
System.out.print(a);
执行结果:2.0
测试说明
平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。
开始你的任务吧,祝你成功!
/**
* 任务:一小球以 10米/秒 的水平速度平抛,重力加速度取9.8米/秒2,
* 在忽略空气阻力的情况下,求经过时间 3 秒后,
* 小球所在位置与抛出点之间的距离 (假设小球距地面足够高)。
* 类名为:Distance
*/
public class Distance {
public static void main(String[] args) {
double g = 9.8; // 声明浮点型变量 g,用于表示重力加速度
int v0 = 10; // 声明整型变量 v0, 用于表示水平初速度
int t = 3; // 声明整型变量 t, 用于表示小球飞行的时间
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:计算水平距离,并赋值给s
double s = v0*t;
// 第二步:计算垂直距离,并赋值给h
double h = (g*t*t) / 2;
// 第三步:计算小球与原点的距离,并赋值给d,Math.sqrt()表示的是对括号里的值求平方根
double d = Math.sqrt( Math.pow(s,2) + Math.pow(h,2) );
// 第四步:打印出小球与原点的距离d 输出格式:小球所在位置与抛出点之间的距离为 xxx 米。 其中 xxx 为求出的距离
System.out.println("小球所在位置与抛出点之间的距离为 " + d +" 米。");
/********** End **********/
}
}