学生が作る、「カレーのレシピ」程度の数十行程度のプログラムでも、バグなしで作ろうとすると簡単ではありません。バグは、いろいろな場所にこっそり、あるいは、堂々と潜んでいます。どんなプログラムでも、バグを的確に見つける能力は非常に重要です。
今回は、学生が5分で記述できる電卓プログラムを問題としました。どこにバグがあるか考えてみてください。
問題文:リスト4は、電卓プログラムの仕様である。リスト5は、仕様を基にプログラムを記述したものである。下記の資料から、どのようなバグがあるか推察せよ。
コンソールから、数値を入力し、加減乗除するプログラムである。
コンソールから、整数型の数値in1、in2を入力し、加減乗除する。
コンソールから、2つの整数型の数値in1、in2を入力する。
コンソールから、どんな演算をするか、下記の整数型の数値で演算モードを入力する。
演算モードに従って、下記を実施し、結果を整数型でコンソールに出力する。
#include <stdio.h> main() { int in1, in2; int mode; int result = 0; printf("2つの数値を入力してください\n"); scanf("%d %d",&in1, &in2); printf("演算モードの選択 1: 加算, 2: 減算, 3: 乗算, 4: 除算\n"); scanf("%d",&mode); switch(mode){ case 1: result = in1 + in2; break; case 2: result = in1 - in2; break; case 3: result = in1 * in2; break; case 4: result = in1 / in2; break; default: break; } printf("result = %d\n", result); }
Copyright © ITmedia, Inc. All Rights Reserved.