练习-Java顺序结构之无输入求平抛小球与抛出点之间的距离

第1关:练习-Java顺序结构之无输入求平抛小球与抛出点之间的距离


任务描述

物体以一定的初速度水平方向抛出,如果物体仅受重力作用,这样的运动叫做平抛运动。平抛运动可看作水平方向的匀速直线运动以及竖直方向的自由落体运动的合运动。如图 1 所示。


图 1

假设v_0v0​表示水平抛出的初速度,tt表示水平抛出后,小球飞行的时间,gg表示重力加速度。

平抛运动经过 tt 秒的水平位移ss计算公式为: s = v_0ts=v0​t

垂直方向位移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?

例子:

 
  1. // Math.pow(x, y) Java 的幂运算,意思为求x的y次方,x和y可以是整型也可以是浮点型,该方法返回一个浮点型的值
  2. double a = Math.pow(2, 3);// 求2的3次方,并将其赋值给一个double型的变量a
  3. System.out.print(a);

执行结果:8.0

如何求取\sqrt44​?

例子:

 
  1. // Math.sqrt(x) Java 开平方的方法,意思为求x的平方根,x可以是整型也可以是浮点型,该方法返回一个浮点型的值
  2. double a = Math.sqrt(4);// 求4的平方根,并将其赋值给一个double型的变量a
  3. 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 **********/

    }
}

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
算法与数据结构涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何具体存储。例如,数组的连续存储,链表的动态分配节点,树和图的邻接矩阵或邻接表表示等。 基本操作:针对每种数据结构,定义了一系列基本的操作,包括但不限于插入、删除、查找、更新、遍历等,并分析这些操作的时间复杂度和空间复杂度。 算法: 算法设计:研究如何将解决问题的步骤形式化为一系列指令,使得计算机可以执行以求解问题。 算法特性:包括输入、输出、有穷性、确定性和可行性。即一个有效的算法必须能在有限步骤内结束,并且对于给定的输入产生唯一的确定输出。 算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法,分支限界法等。 算法分析:通过数学方法分析算法的时间复杂度(运行时间随数据规模增长的速度)和空间复杂度(所需内存大小)来评估其效率。 学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何具体存储。例如,数组的连续存储,链表的动态分配节点,树和图的邻接矩阵或邻接表表示等。 基本操作:针对每种数据结构,定义了一系列基本的操作,包括但不限于插入、删除、查找、更新、遍历等,并分析这些操作的时间复杂度和空间复杂度。 算法: 算法设计:研究如何将解决问题的步骤形式化为一系列指令,使得计算机可以执行以求解问题。 算法特性:包括输入、输出、有穷性、确定性和可行性。即一个有效的算法必须能在有限步骤内结束,并且对于给定的输入产生唯一的确定输出。 算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法,分支限界法等。 算法分析:通过数学方法分析算法的时间复杂度(运行时间随数据规模增长的速度)和空间复杂度(所需内存大小)来评估其效率。 学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。
算法与数据结构它们分别涵盖了以下主要内容: 数据结构(Data Structures): 逻辑结构:描述数据元素之间的逻辑关系,如线性结构(如数组、链表)、树形结构(如二叉树、堆、B树)、图结构(有向图、无向图等)以及集合和队列等抽象数据类型。 存储结构(物理结构):描述数据在计算机中如何具体存储。例如,数组的连续存储,链表的动态分配节点,树和图的邻接矩阵或邻接表表示等。 基本操作:针对每种数据结构,定义了一系列基本的操作,包括但不限于插入、删除、查找、更新、遍历等,并分析这些操作的时间复杂度和空间复杂度。 算法: 算法设计:研究如何将解决问题的步骤形式化为一系列指令,使得计算机可以执行以求解问题。 算法特性:包括输入、输出、有穷性、确定性和可行性。即一个有效的算法必须能在有限步骤内结束,并且对于给定的输入产生唯一的确定输出。 算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法,分支限界法等。 算法分析:通过数学方法分析算法的时间复杂度(运行时间随数据规模增长的速度)和空间复杂度(所需内存大小)来评估其效率。 学习算法与数据结构不仅有助于理解程序的内部工作原理,更能帮助开发人员编写出高效、稳定和易于维护的软件系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值