問題 4
ax2 + bx + c = 0 の 2次方程式を入力し、その判別式を計算し解の存在を調べ、解を求めるフレームを作成せよ。 |
このプロジェクトを以下のように設定しよう。
タイトル | 2次方程式の解 |
説明 | 2次方程式の解を求めよう。 |
フレームタイトル | 問題4(夏休み課題) |
最初に、タイトル、説明などを設定してプロジェクトを生成しよう。
実行時のフレームには、以下のようにオブジェクトを配置しよう。
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 クラスを使うと有効である。