解決済みの質問
以下の問題が問題集にあったのですが、
解答はエなのですが、なぜエだけがエラーに
なるのかが分かりません。
ご存知の方がいらしたら、解説をお願い致します。
問題
次の表は、入力文字列を検査するための状態遷移表である。この検査では、文字を入力した後の状態がeになれば不合格とする。
初期状態をaとして、解答群で示される文字列をそれぞれ入力したときに、不合格となるものはどれか。ここで、解答群の△は空白を表す。
【表】
入力文字
|空白|数字|符号|小数点|その他
現|a|a|b|c|d|e
______________
在|b|a|b|e|d|e
______________
の|c|e|b|e|d|e
______________
状|d|a|e|e|e|e
______________
態|
【解答群】
ア : 9.△
イ : +0010
ウ : -1
エ : 12.2
投稿日時 - 2003-01-29 12:06:19
初期状態がわからないのですが、aと仮定します。
例えばアの場合
aの状態で'9'が入力されると、一番上の段の数字入力なのでbになります。
次に'.'が入力されると、現在状態bなので2段目の小数点でdになります。
次に△が入力されると、現在状態dなので4段目の空白でaになります。
合格ですね。
エの場合
aの状態で'1'が入力されると、一番上の段の数字なのでbになります。
次に'2'が入力されると、現在状態bなので2段目の数字でbになります。
次に'.'が入力されると、現在状態bなので2段目の小数点でdになります。
次に'2'が入力されると、現在状態dなので4段目の数字でeになります。
不合格ですね。
状態遷移表はこのように、現在の状態と発生したイベントで、次の状態を指し示し、順に状態を変化させていき、プログラムの条件や処理内容を判定します。
こういった色々な組み合わせのあるロジックを書く場合に、文章で書くと漏れが出たり、ミスが発生しやすくなるのですが、マトリックス(表)にすることで、漏れをなくし、またテストも効率的に進めることが出来ます。
プログラムの世界では、実際によく使う手法です。
投稿日時 - 2003-01-29 12:25:54
お礼
書き込みありがとうございました。
参考になりました!
マトリックス、確かにドキュメント類には
必ず出てきますね。
投稿日時 - 2003-01-29 18:53:07
0人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(3件中 1~3件目)
この表は1文字チェックするごとに処理状態がa~eのどれかの状態に遷移することを
表しています。
例えば一番上の行の読み方は、
現在の状態がaである時
空白を入力されたら → a
数字だったら → b
符号だったら → c
小数点だったら → d
その他 → e (エラー)
の状態に遷移します。
この遷移表にエを入力した場合ですが、
(1)”1”をチェック
状態: a → b
(2)”2”をチェック
状態: b → b
(3)”.”をチェック
状態: b → d
(4)”2”をチェック
状態: d → e
となり、エラーになります。
投稿日時 - 2003-01-29 12:27:15
お礼
書き込みありがとうございました。
参考になりました!
投稿日時 - 2003-01-29 18:51:52
OKWaveのオススメ
おすすめリンク