当前位置: 首页 > 知识库问答 >
问题:

调试我的escape velocity程序中的问题

司寇阳曦
2023-03-14

任务是编写一个输出

>

行星质量

逃逸速度

输入是周长和加速度。

对于2个输入,我们将使用

  1. 计算半径的圆周长公式,
  2. 计算质量的重力方程产生的加速度
  3. 计算逃逸速度的逃逸速度公式

如果我的输入是40075(地球周长)和9.8(加速度),我的输出半径是6378(正确),输出质量是5.97e18(正确输出应该是5.97e24),我的输出逃逸速度是354(正确输出是11184)。

这是作业说明。

“使用以下两个等式(一个给定,一个在链接中)

equation 1:
a=(G*m)/(r^2)

公式2:参考下面的链接

http://www.softschools.com/formulas/physics/escape_velocity_formula/90/

G是常数(找到它)

询问用户以公里为单位的周长

求重力引起的加速度,单位为m/s^2

输出:

  1. 以km为单位的行星半径
  2. 行星质量(千克)(使用公式1)
  3. 以km/s为单位的逃逸速度(使用公式2)

“包括单位和格式”

这是我的程序代码。

import java.util.*;
import java.lang.Math;

class Main {
  public static void main(String[] args) {
    Scanner userInput = new Scanner (System.in);

    System.out.println("\nWelcome to the Escape Velocity Application. To begin, please enter the following information below. \nEnter the circumference (km):");
    double circum = userInput.nextDouble();

    System.out.println("Enter the acceleration due to gravity (m/s^2):");
    double a = userInput.nextDouble();

    //Gravitational constant 
    double G = 6.67408e-11;

    //Radius
    double r = Math.round((circum/2)/Math.PI);

    //Mass
    double m = Math.round((a*(Math.pow(r,2)))/G);

    //Escape Velocity
    double e = Math.round(Math.sqrt((2*G*m)/r));

    System.out.println("\nThe radius is: "+r+" kilometers.");
    System.out.println("\nThe mass is: "+m+" kg.");
    System.out.println("\nThe escape velocity is: "+e+" m/s.");

  }
}

共有1个答案

巴学潞
2023-03-14

经典的物理错误!当你在物理中使用任何公式时,确保你使用的是正确的单位。

您可以接受以公里为单位的天体周长的输入,但请确保在计算过程中将其转换为米。记住:x km=x*10^3m

double circum = 40075 * Math.pow(10, 3); // convert km to m

double f = 9.807; //more accurate

double G = 6.67408e-11;

double r = circum/(2*Math.PI);

double m = f*Math.pow(r, 2)/G;

double e = (Math.sqrt((2.0*G*(m))/r));

System.out.println("The radius is: " + r * Math.pow(10, -3) + " kilometers.");
System.out.println("The mass is: " + m + " kg.");
System.out.println("The escape velocity is: " + e + " m/s.");

代码提供以下输出:

The radius is: 6378.134344407706 kilometers.

The mass is: 5.981328662579845E24 kg.

The escape velocity is: 11184.843630163667 m/s.

我所做的改变是将km转换为m,并将f转换为更精确的值。还要记住,在完成最终计算之前不要进行取整,这将保持尽可能高的精度。

 类似资料:
  • 问题内容: 实际上,我有两个有关Android错误的相关问题。我发布了一个应用程序的更新,该应用程序以前可以正常运行,并且可以在Nexus One,G1和模拟器上以当前版本运行。但是,自从上次更新以来,我通过Android市场控制台收到了很多错误日志,并且无法重现该错误。该应用程序非常简单,只有两个活动,因此手动测试该应用程序应该非常容易。但是,在发布之前,经常会发现一些我找不到的错误。 所以第一

  • 当我调试我的应用程序时,它会显示一个错误,如BUILD FAILED 总时间:1分钟41.485秒执行任务:[: app: GenerateDebugSSource,: app: GenerateDebugAndroidTestSSource,: app: mockableAndroidJar,: app: preareDebugUnitTestDependency] 失败:构建失败,但有例外。

  • 3. 程序的调试 编程是一件复杂的工作,因为是人做的事情,所以难免经常出错。据说有这样一个典故:早期的计算机体积都很大,有一次一台计算机不能正常工作,工程师们找了半天原因最后发现是一只臭虫钻进计算机中造成的。从此以后,程序中的错误被叫做臭虫(Bug),而找到这些Bug并加以纠正的过程就叫做调试(Debug)。有时候调试是一件非常复杂的工作,要求程序员概念明确、逻辑清晰、性格沉稳,还需要一点运气。调

  • 问题内容: 我目前正在使用Java EE技术和Eclipse作为IDE开发MVC应用程序。要运行服务器并部署应用程序,我正在使用ANT。我想知道如何通过ant工具或Eclipse调试Java代码。 问题答案: 将以下选项添加到您的tomcat start命令中: 您将能够使用调试类别在端口5000上附加Eclipse调试器。

  • 5.4.3.Android 程序的调试 哦,糟糕,我们的程序不能正常工作了。不过别担心,这是必须的。调试是正式开发中不可回避的一部分。我们将在本章讲解 Android SDK中提供的调试工具的使用方法,学会如何快速地定位并解决问题。调试会成为你的第二本能的!

  • 设置断点 在程序的调试过程中,为了分析出程序出错的原因,往往需要观察程序中某些数据的变化情况,这时就需要为程序设置断点。断点可以让正在运行的程序在需要的地方中断,当再次运行程序时,程序会在断点处暂停,方便观察程序中的数据。在VS开发工具中,如果要给代码添加断点,可以左键单击代码左边的灰色区域即可,断点插入成功后左侧会有彩色圆点出现,如图所示。 上述方式可以在程序中插入断点,另外,也可以在某行代码处