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

» 2021年10月19日 10時00分 公開
前のページへ 1|2|3|4       
※本記事はアフィリエイトプログラムによる収益を得ています

付録

 QuadraticEquation.pyをダウンロードする際にファイルが開けない、またはセキュリティの観点からWebサイトからファイルをダウンロードして開きたくない場合、下記のソースコードのテキストをコピーして使用してください。なお、プログラミング言語は、Python 3.9.5で動作します(Windows 10環境上で、動作確認済み)。

#
# プログラム:解の公式算出プログラム(QuadraticEquation.py)
# 作成者:T.Yamaura, Y.Ohmori
#
import math
def main():
  # a,b,cを入力する
  a = input('aの値を入力してください: ')
  b = input('bの値を入力してください: ')
  c = input('cの値を入力してください: ')
  #int型にキャストする
  a = int(a)
  b = int(b)
  c = int(c)
  #判別式(b2 - 4ac)
  D = (b * b) - (4 * a * c)
  #解の公式
  if a != 0.0:
    if D > 0:
      #D > 0の場合
      x1 = (-b + math.sqrt(D)) / 2 * a 
      x2 = (-b - math.sqrt(D)) / (2 * a)
      print('x1 =', int(x1))
      print('x2 =', int(x2))
    elif D == 0:
      #D = 0の場合
      x1 = (-b) / (2 * a)
      print('x1 =', int(x1))
    else:
      #D < 0の場合
      print('解なし')
  else:
    if b != 0:
      #1次方程式として解を求める
      x1 = b / -c
      print('x1 =', int(x1))
    elif b == 0 and c != 0:
      print('甲斐なし')
    else:
      print('算出不可')
if __name__ == "__main__":
  main()
QuadraticEquation.pyのソースコード

山浦先生の書籍が発売中です!

 前シリーズ「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。

 前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。

 両書とも興味のある方は、Amazon.comや書店でチェックしてください!

【 筆者紹介 】
山浦 恒央(やまうら つねお)

東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)


1977年、日立ソフトウェアエンジニアリングに入社、2006年より、東海大学情報理工学部ソフトウェア開発工学科助教授、2007年より、同大学大学院組込み技術研究科准教授、2016年より非常勤講師。

主な著書・訳書は、「Advances in Computers」 (Academic Press社、共著)、「ピープルウエア 第2版」「ソフトウェアテスト技法」「実践的プログラムテスト入門」「デスマーチ 第2版」「ソフトウエア開発プロフェッショナル」(以上、日経BP社、共訳)、「ソフトウエア開発 55の真実と10のウソ」「初めて学ぶソフトウエアメトリクス」(以上、日経BP社、翻訳)。


前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.