SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
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
24.
4つの手順を覚えよう
1. 入力条件と出力(結果)を見つける
2. テーブルサイズを決定して、真理値(Y/N
)を記入する
3. 各ルールの出力(結果)を記入する
4. テーブルを圧縮する
まずは基本の手順をしっかり身に
つけよう!
Copyright (C) 2010 WACATE All rights reserved
25.
例題
参議院被選挙権
日本国民で年齢満30年以上の者は参議院議員の被選挙権を
有する。ただし、例外的に被選挙権を有しない者につい
ては公職選挙法に規定がある。
ウィキペディア(改)
Copyright (C) 2010 WACATE All rights reserved
27.
サイズを決定してテーブルを作成する
参議院被選挙権
日本国民で年齢満30年以上の者は参議院議員の被選挙権を
有する。ただし、例外的に被選挙権を有しない者につい
ては公職選挙法に規定がある。
ウィキペディア(改)
参議院被選挙権
#1 #2 #3 #4 #5 #6 #7 #8
日本国民 Y Y Y Y N N N N
Yを半分、Nを半分
満30年以上
並べて書き込む Y Y N N Y Y N N
公職選挙法の規定 Y N Y N Y N Y N
被選挙権あり
上段の1/2分だけ
被選挙権なし
同じ規則で書き込む
Copyright (C) 2010 WACATE All rights reserved
28.
各ルールの結果を記入する
参議院被選挙権
日本国民で年齢満30年以上の者は参議院議員の被選挙権を
有する。ただし、例外的に被選挙権を有しない者につい
ては公職選挙法に規定がある。
ウィキペディア(改)
参議院被選挙権
#1 #2 #3 #4 #5 #6 #7 #8
結果をそれぞれ
日本国民 Y Y Y Y N N N N
書き込む
満30年以上 Y Y N N Y Y N N
公職選挙法の規定 Y N Y N Y N Y N
被選挙権あり ○
被選挙権なし ○ ○ ○ ○ ○ ○ ○
Copyright (C) 2010 WACATE All rights reserved
29.
テーブルを圧縮する
参議院被選挙権
日本国民で年齢満30年以上の者は参議院議員の被選挙権を
有する。ただし、例外的に被選挙権を有しない者につい
ては公職選挙法に規定がある。
ウィキペディア(改)
参議院被選挙権
#1 #2 #3 #4 #5 #6 #7 #8
日本国民 Y Y Y Y N N N N
満30年以上 Y Y N N Y Y N N
公職選挙法の規定 Y N Y N Y N Y N
被選挙権あり ○
被選挙権なし ○ ○ ○ ○ ○ ○ ○
Copyright (C) 2010 WACATE All rights reserved
30.
テーブルを圧縮する
参議院被選挙権
日本国民で年齢満30年以上の者は参議院議員の被選挙権を
有する。ただし、例外的に被選挙権を有しない者につい
ては公職選挙法に規定がある。
ウィキペディア(改)
参議院被選挙権
#1 #2 #3 #4 #5
日本国民 Y Y Y N N
満30年以上 Y Y N Y N
公職選挙法の規定 Y N - - -
被選挙権あり ○
被選挙権なし ○ ○ ○ ○
Copyright (C) 2010 WACATE All rights reserved
31.
テーブル圧縮結果
参議院被選挙権
日本国民で年齢満30年以上の者は参議院議員の被選挙権を
有する。ただし、例外的に被選挙権を有しない者につい
ては公職選挙法に規定がある。
ウィキペディア(改)
参議院被選挙権
#1 #2 #3 #4
日本国民 Y Y Y N
満30年以上 Y Y N -
公職選挙法の規定 Y N - -
被選挙権あり ○
被選挙権なし ○ ○ ○
Copyright (C) 2010 WACATE All rights reserved
32.
それでは演習の時間です
個人で解いて、
隣どうしで説明してみよう!
Copyright (C) 2010 WACATE All rights reserved 32
33.
イタリア料理屋さんの割引
問題
12月中の月曜日のコース料理ご利用で¥5000から2割引き
!
Copyright (C) 2010 WACATE All rights reserved
34.
パスワード登録プログラム
問題
入力された文字列がパスワードとして適切かどうかを以下
の順序で判定する。
(1) 長さが、5~16文字でない場合はエラー表示
(2) アカウント名と同一文字列であればエラー表示
(3) 記号を含む場合はエラー表示
Copyright (C) 2010 WACATE All rights reserved