検索
ニュース

テストでバグ発見!(4)懐かしい「解の公式」のプログラムからバグを探し出せ山浦恒央の“くみこみ”な話(146)(2/4 ページ)

提示された仕様とプログラム(バグを含む)から、自身の手でテストケースを設計し、バグを実際に見つけ、バグレポートまでを作成する実践的なシリーズ「テストでバグ発見!」。第4回は、多くの読者が中学校の数学で学んであろう、2次方程式の解を求める「解の公式」のプログラムに潜むバグを見つけ出そう。

Share
Tweet
LINE
Hatena
※本記事はアフィリエイトプログラムによる収益を得ています

3.2 詳細

 要求仕様の詳細を下記に示す。

3.2.1 コンソール入力

 ユーザーは、プログラム起動時に、コンソール上からa、b、cの整数値(−100〜100)を入力する。また、入力する時は、「aの値を入力してください:」などのメッセージを表示する。

3.2.2 解の算出

 a、b、cを入力後、以下の手順で、解を算出し、コンソール上に表示する。なお、コンソール上には、小数以下は切り捨てて表示すること。

(1)判別式からDを求める

 判別式を用いて、解が何個あるか判別する。


(2)aが0か判定する

(2-1)a≠0の場合は、以下を実施する

D>0の場合

 D>0の場合は、下記の式から、x1とx2を算出する。


 算出した結果は、「x1 = ○○」「x2 = ○○」と表示する。

D=0の場合

 D=0の場合は、下記の式から1つの解を算出する。


 算出した結果は、「x1=○○」と表示する。

D<0の場合

 D<0の場合は、「解なし」と出力する。

(2-2)a=0の場合

 a=0の場合は、以下を実施する。

b≠0の場合

 bが0でない場合は、1次方程式として解を求める。


b=0かつc≠0の場合

 「解なし」と出力する。

それ以外の場合

 「算出不可」と出力する。

3.3 データ設計

 データ設計を以下の表1に示す。

データ データ型 下限/上限 入力/出力 備考
a int -100〜100 入力
b int -100〜100 入力
c int -100〜100 入力
x1 int N/A 出力 小数以下は切り捨てる
x2 int N/A 出力
表1 データ設計

3.4 使用例

 下記にプログラムの実行例を示す。

aの値を入力してください:1
bの値を入力してください:-4
cの値を入力してください:4
リスト1 入力例
x1 = 2
リスト2 出力例

3.5 制限事項

 問題の都合上の制限事項を示す。

  • テスト入力値は半角数値に限定し、入力値は-100〜100までとする(今回は、エラーケースは考えない)。
  • D<0の場合は、虚数を使わず、「解なし」と出力する。
  • 出力結果は、説明の都合上、整数値に変換して表示する。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る