区間 (Range) とは
区間とは ,数直線上のある区切りの間の数(実数)の集合のことである。区切りの数を含むか含まないかで区間の呼び方が異なり,開区間,閉区間,半開区間がある(KIT数学ナビゲーションより)。
(難しく聞こえますが、小学校の時に習った数直線のことです)
閉区間 (Closed Range) とは
区切りを含む(例えば aとbの両端を含む)場合を閉区間という。
[3,8]
-> 下端点 (lower endpoint) が 3 , 上端点 (upper endpoint) が 8 である整数閉区間
-> 3 と 8 は区間に含まれる
-> つまり (整数閉区間だから) 3,4,5,6,7,8
- 下端点と上端点を与えて閉区間を生成し、閉区間から下端点と上端点を取得してみましょう
- (「生成する」だけをテストしようとすると難しくなります。こだわりすぎないことがポイントです)
- 下記の例はあくまで「Java っぽい言語による実装の一例」なので、使っている言語の文化に合わせて読み替えてみてください(Ruby なら、 JavaScript ならどう書くでしょうか)。
【例】
// 閉区間 [3,8] を生成
ClosedRange range = new ClosedRange(3, 8);
// [3,8] の下端点は 3
int lowerEndpoint = range.getLowerEndpoint(); // => 3
// [3,8] の上端点は 8
int upperEndpoint = range.getUpperEndpoint(); // => 8
- 閉区間から文字列表現を取得してみましょう
- 使っているプログラミング言語の文字列表現化メソッドについて(あるならば)調べてみましょう
【例】
// 閉区間 [3,8] の文字列表記は "[3,8]"
String notation = range.toString(); // => "[3,8]"
- 閉区間が指定した整数を含むか (contains) 判定してみましょう
- テストデータについて考えましょう。例えば閉区間 "[3,8]" のとき、テストすべき数値はいくつあるでしょうか?
【例】
// [3,8] は 5 を含む
range.contains(5); // => true
// [3,8] は -1 を含まない
range.contains(-1); // => false
この演習問題は クリエイティブ・コモンズ 表示 - 継承 2.1 日本 ライセンスの下に提供されています。
短縮URL: http://bit.ly/2tmQRcW