1

これはまったく科学ではありません。Java の助けが必要なだけです。あなたが知っていれば、3つの運動方程式があります.

v=u+at である 1 に焦点を当てます。すべての専門用語は忘れてください。4 つの変数があることがわかります。

しかし、Javaでこれを計算しようとすると、常にユーザーにu、a、およびtの値を提供し、出力vを提供するように依頼する必要がありますが、実際には、変数の値を計算できます他の方程式がある場合、この方程式。

それで、すべての入力が求められ、ユーザーが4つの入力の1つに入力を入力しないオプションがあり、それが計算される方法はありますか。

例: 2=v,1=u および 3=a と入力し、t の値を尋ねられたら、Enter キーを押します。空白を見つけるために私にできることはありますか?

これで、if ループを実行する方法があることがわかりましたが、それは非常に長くなり、私も少し怠け者です。だから、これを行う簡単な方法はありますか?

今、私はJavaの知識が限られている初心者なので、皮肉を言わないで、私が間違っている可能性が高い場合は教えてください。

ありがとう!

4

3 に答える 3

3

他の変数を直接解くだけです。

v=u+at
u=v-at
a=(v-u)/t
t=(v-u)/a
于 2012-07-30T17:11:04.570 に答える
1

必要なのは、連立方程式ソルバー (Java の有無にかかわらず) です。

https://discursive.atlassian.net/wiki/display/CJCOOK/Solving+a+System+of+Linear+Equationsを参照してください。この記事では、Java を使用して一連の方程式を表す行列を設定し、org.apache で解いています。 .commons.math.linear.RealMatrix パッケージ。

「線形方程式系」をグーグルで検索して、このプロセスの詳細/独自の実装方法を確認できます。

ユーザーに 4 つの方程式のうち 3 つを選択させるため、3 つ以上の値を入力してマトリックス ソルバーに接続し、4 番目の答えを返すフォームを用意します。それ以外の場合は、入力をキーワードで区別できます (コマンド ラインでこれを行う方法については google argparse を参照するか、Java でコマンド ライン引数を解析する方法を参照してください) 。

于 2012-07-30T17:07:13.443 に答える
0

このようにできる...

import java.util.Scanner;
class motion
{
    public static double i(String str)
    {
     return Double.parseDouble(str);
    }
    public static void main(String args[])
    {
        String v1,u1,a1,S1;
        double v,u,a,S;
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter the following values and \"?\" to find that value");
        System.out.print("v=");
        v1=sc.next();
        System.out.print("u=");
        u1=sc.next();
        System.out.print("a=");
        a1=sc.next();
        System.out.print("S=");
        S1=sc.next();
        if(v1.equals("?"))
        {
            u=i(u1);
            a=i(a1);
            S=i(S1);
            v=Math.sqrt(((u*u)+2*a*S));
            System.out.println("Final velocity="+v+" m/s");
        }
        else if(u1.equals("?"))
        {
            v=i(v1);
            a=i(a1);
            S=i(S1);
            u=Math.sqrt((v*v)-2*a*S);
            System.out.println("Initial velocity="+u+" m/s");
        }
        else if(a1.equals("?"))
        {
            u=i(u1);
            v=i(v1);
            S=i(S1);
            a=((v*v)-(u*u))/2*S;
            System.out.println("Acceleration="+a+" m/s^2");
        }
        else
        {
            u=i(u1);
            v=i(v1);
            a=i(a1);
            S=((v*v)-(u*u))/2*a;
            System.out.println("Displacement="+S+" m");
        }
    }
}
于 2020-05-01T10:49:49.470 に答える