0

二次方程式 (ax^2 + bx + c = 0) の根を決定するコードを書くように求めるこの課題があります。しかし、大学のライブラリ (type.lib.Equation;) を使用する必要があります。

ルートが 2 つある場合を除いて、ほぼすべてを把握しました。1 番目のルートを取得できますが、2 番目のルートを取得するためにまだ周回しています。

これまでの私のコード

import java.util.Scanner;
import java.io.PrintStream;
import type.lib.Equation;

public class Check05A
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        PrintStream output = System.out;
        Scanner input = new Scanner(System.in);

        output.println("Enter a,b,c pressing ENTER after each... ");
        double a = input.nextDouble();
        double b = input.nextDouble();
        double c = input.nextDouble();
        output.print("The equation: ");
        Equation x = new Equation(a, b, c);
        output.print(x);
        int root = x.getRootCount();




        if(root == 0)
        {
            output.println(" has no real roots.");
        }
        if(root == 1)
        {
            double r1 = x.getRoot(root);
            output.println(" has the single root: " + r1);
        }
        if(root == 2)
        {
            double r1 = x.getRoot(root);
            double r2 = -x.getRoot(root);
            output.println(" has the two roots: " + r2 + " and " + r1);
        }
        if(root == -1)
        {

            output.println("\nis an identity - any value is a root.");
        }









    }

}

たとえば、1、2、-4 は次のように出力する必要があります。

"2 つのルートがあります: -3.23606797749979 と 1.2360679774997898"

4

2 に答える 2

0

ルート 1 にマイナス記号を付けているだけです。

これは必ずしもそうではありません。

二次方程式の根を求める式を調べます。

x=\frac{-b \pm \sqrt {b^2-4ac}}{2a}.

関数 x.getRoot() 内で、配列内に 2 つの値を返します。

于 2013-10-18T05:26:08.387 に答える
0

*この回答は、If ステートメントを使用して任意の n 次多項式の根を求める TI-84 計算機のみを対象としていることにご注意ください。これで質問に答えられない場合は、先に進んでください。

n 次多項式の根を見つけるのに役立つ TI-84 プログラムを作成しました。コードは次のとおりです。

(Z と S は f と g の導関数になるように設定されていることに注意してください。これらは自分で見つける必要があります (このコードは後で f' と g' を取得するパラメーターで更新します。z と s を次のように設定します)。 1 を使用して GCF またはルートを検索します!) (また、Y1 は vars で見つかります。vars ボタンをクリックした直後にタブで Enter キーを押し、もう一度 Enter キーを押します)

まず、使用している関数を Y1、Y2 などに配置します。

ここにコードを入力してください :Prompt F,G`:Prompt Z:Prompt S:If Y1=F:If Y2=G:F*G=FS+GZ->H :If X≥Y:XY=I->I:Disp I:If I=0:If I>0:Repeat XY=J->J:Disp J

それでおしまい!とてもシンプルですが、とても役に立ちます。改善点があれば教えてください (このコードにすぐに埋め込む派生ファインダー プログラムを作成する予定です!)

どうもありがとう、そしてコードを楽しんでください!-エヴァン

于 2021-12-03T10:17:25.310 に答える