2次方程式の解の計算

[ うえ ]

課題1

ax2 + bx + c = 0 の 2次方程式を入力し、その判別式を計算し解の存在を調べ、を求めるフレームを作成せよ。

このプロジェクトを以下のように設定しよう。

タイトル 2次方程式の解
説明 2次方程式の解を求めよう。
フレームタイトル 課題1(夏休み課題)

最初に、タイトル、説明などを設定してプロジェクトを生成しよう。


実行時のフレームには、以下のようにオブジェクトを配置しよう。


2次方程式の判別式と解は、以下のようにして求める。

       判別式 = b^2 - 4 * a * c
判別式は、実数解が存在するかどうかを判定する式なのでルート(sqrt) の中の正、負、0で判定する。
              -b ± sqrt( b^2 - 4 * a * c )
        = --------------------------------
                      2 * a
よって、判別式 < 0 で、2 つの虚数解をもつ。判別式 = 0 で、1つの実数解(重解)をもち、判別式 > 0 で2つの実数解を持つ。

ここでの各TextFieldは、やはり数字(Double型)の入力なので右づめにする必要がある。


各TextFieldからの入力は、Double 型の値の入力なので、文字列を double 型の値に変換しなければならない。以下のようにして変換しよう。

        double a = Double.parseDouble(jTextField1.getText());
        double b = Double.parseDouble(jTextField2.getText());
        double c = Double.parseDouble(jTextField3.getText());

さらに、ルート(根号)計算は、Math.sqrt( ) メソッドを使おう。このメソッドは double 型の値に対して有効である。


実行例(解なし、2つの虚数解)


実行例(1つの実数解(重解))


実行例(2つの実数解)


余裕のある学生は、Double型の値を TextField に表示する場合の桁数の指定について調べプログラミングせよ。

java.text.NumberFormat クラスを使うと有効である。


[ うえ ]
yasu@i.hosei.ac.jp