9. 条件エントリ
例 月の末日
指定した月の末日(28日~31日)を出力するプロ
グラムのデシジョンテーブルを作成しなさい。
タイトル:月の末日
#1 #2 #3 #4 動作エントリ:
大の月 Y N N N
Y ⇒ Yes, 真である
N ⇒ No, 偽である
小の月(2月以外) - Y N N
- ⇒ 真偽は無関係
2月 - - Y Y
うるう年 - - N Y
28日
29日
30日
31日
Copyright (C) 2010 WACATE All rights reserved
10. 動作エントリ
例 月の末日
指定した月の末日(28日~31日)を出力するプロ
グラムのデシジョンテーブルを作成しなさい。
タイトル:月の末日
#1 #2 #3 #4
大の月 Y N N N
小の月(2月以外) - Y N N
2月 - - Y Y
うるう年 - - N Y 動作エントリ:
28日 ○ ○ ⇒ 動作を実行
29日 ○ 空欄⇒ 動作は実行せず
30日 ○
31日 ○
Copyright (C) 2010 WACATE All rights reserved
11. ルールの解釈
例 月の末日
指定した月の末日(28日~31日)を出力するプロ
グラムのデシジョンテーブルを作成しなさい。
タイトル:月の末日
#1 #2 #3 #4
大の月 Y N N N
小の月(2月以外) - Y N N
2月 - - Y Y
うるう年 - - N Y
28日 ○ 指定した月が「大の月」
29日 ○ の場合、末日は「31日」
30日 ○
31日 ○
Copyright (C) 2010 WACATE All rights reserved
12. ルールの解釈
例 月の末日
指定した月の末日(28日~31日)を出力するプロ
グラムのデシジョンテーブルを作成しなさい。
タイトル:月の末日
#1 #2 #3 #4
大の月 Y N N N
AND
小の月(2月以外) - Y N N
AND
2月 - - Y Y
AND
うるう年 - - N Y
THEN
28日 ○
29日 ○ 指定した月が「2月」かつ
30日 ○ 「うるう年」の場合、末
31日 ○ 日は「29日」
Copyright (C) 2010 WACATE All rights reserved
13. テーブル表記には3種類ある
• 制限エントリテーブル
エントリ記入方法が真理値(Y/N)に制限された
テーブル
タイトル:月の末日
#1 #2 #3 #4
大の月 Y N N N
Y/Nの代わりに
T/Fを用いる場合
小の月(2月以外) - Y N N
もあるよ
2月 - - Y Y
うるう年 - - N Y
28日 ○
29日 ○ XやT/Fで書く場
30日 ○ 合もあるよ
31日 ○
Copyright (C) 2010 WACATE All rights reserved
15. テーブル表記には3種類ある
• 混合エントリテーブル
制限エントリテーブルと、拡張エントリテーブル
をまとめたテーブル
タイトル:月の末日
#1 #2 #3 #4
大の月 Y N N N
小の月(2月以外) - Y N N
2月 - - Y Y
うるう年 - - N Y
末日 31日 30日 28日 29日
Copyright (C) 2010 WACATE All rights reserved
17. テーブルの圧縮
テーブルの圧縮方法を
学ぼう!
Copyright (C) 2010 WACATE All rights reserved 17
18. テーブルの大きさ
• 入力条件数からテーブルサイズが決まる
• 特に制限エントリテーブルは 2n 個
タイトル:IF A AND (B OR C) THEN X ELSE Y のルール
#1 #2 #3 #4 #5 #6 #7 #8
条件A Y Y Y Y N N N N
3個 条件B Y Y N N Y Y N N
条件C Y N Y N Y N Y N
処理X ○ ○ ○
処理Y ○ ○ ○ ○ ○
23 = 8個
Copyright (C) 2010 WACATE All rights reserved
19. テーブルの圧縮
• 出力に影響を及ぼさない入力条件はまとめられる
(これをテーブルの圧縮という)
タイトル:IF A AND (B OR C) THEN X ELSE Y のルール
#1 #2 #3 #4 #5 #6 #7 #8
条件A Y Y Y Y N N N N
条件B Y Y N N Y Y N N
条件C Y N Y N Y N Y N
処理X ○ ○ ○
処理Y ○ ○ ○ ○ ○
条件Cは無関係 ⇒ 記号「-」
Copyright (C) 2010 WACATE All rights reserved
20. テーブルの圧縮
• 下から順番にテーブルの圧縮を繰り返す
タイトル:IF A AND (B OR C) THEN X ELSE Y のルール
#1 #2 #3 #4 #5
条件A Y Y Y N N
条件B Y N N Y N
条件C - Y N - -
処理X ○ ○
処理Y ○ ○ ○
条件Bは無関係 ⇒ 記号「-」
Copyright (C) 2010 WACATE All rights reserved
21. テーブルの圧縮
• テーブルの圧縮が完成
タイトル:IF A AND (B OR C) THEN X ELSE Y のルール
#1 #2 #3 #4
条件A Y Y Y N
条件B Y N N -
条件C - Y N -
処理X ○ ○
処理Y ○ ○
8個のルールが4個に圧縮できた。
けど、あってるかな??
Copyright (C) 2010 WACATE All rights reserved
22. 圧縮後の検算
• テーブル圧縮が正しく行われたかを、記号「-」
の個数を使って検算できる
タイトル:IF A AND (B OR C) THEN X ELSE Y のルール
#1 #2 #3 #4
条件A Y Y Y N
23 条件B Y N N -
=8個 条件C 1回 - Y N -
2回
処理X ○ ○
処理Y ○ ○
21 1 1 22 =8個
漏れをなくすために、検算方法も覚えておこう!
Copyright (C) 2010 WACATE All rights reserved
23. デシジョンテーブルを描いてみよう
さあ、例題を解きながら
解説していきます!
Copyright (C) 2010 WACATE All rights reserved 23