プロが教える店舗&オフィスのセキュリティ対策術

以下の問題が問題集にあったのですが、
解答はエなのですが、なぜエだけがエラーに
なるのかが分かりません。
ご存知の方がいらしたら、解説をお願い致します。


問題
次の表は、入力文字列を検査するための状態遷移表である。この検査では、文字を入力した後の状態が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

A 回答 (4件)

初期状態がわからないのですが、aと仮定します。


例えばアの場合
aの状態で'9'が入力されると、一番上の段の数字入力なのでbになります。
次に'.'が入力されると、現在状態bなので2段目の小数点でdになります。
次に△が入力されると、現在状態dなので4段目の空白でaになります。
合格ですね。

エの場合
aの状態で'1'が入力されると、一番上の段の数字なのでbになります。
次に'2'が入力されると、現在状態bなので2段目の数字でbになります。
次に'.'が入力されると、現在状態bなので2段目の小数点でdになります。
次に'2'が入力されると、現在状態dなので4段目の数字でeになります。
不合格ですね。

状態遷移表はこのように、現在の状態と発生したイベントで、次の状態を指し示し、順に状態を変化させていき、プログラムの条件や処理内容を判定します。
こういった色々な組み合わせのあるロジックを書く場合に、文章で書くと漏れが出たり、ミスが発生しやすくなるのですが、マトリックス(表)にすることで、漏れをなくし、またテストも効率的に進めることが出来ます。
プログラムの世界では、実際によく使う手法です。
    • good
    • 0
この回答へのお礼

書き込みありがとうございました。
参考になりました!
マトリックス、確かにドキュメント類には
必ず出てきますね。

お礼日時:2003/01/29 18:53

すいません、間違えました。


一番左の列が現在の状態を示していたのですね。
失礼しました。
    • good
    • 0
この回答へのお礼

書き込みありがとうございました。

お礼日時:2003/01/29 18:51

この表は1文字チェックするごとに処理状態がa~eのどれかの状態に遷移することを


表しています。

例えば一番上の行の読み方は、
現在の状態がaである時
空白を入力されたら → a
数字だったら    → b
符号だったら    → c
小数点だったら   → d
その他       → e (エラー)
の状態に遷移します。

この遷移表にエを入力した場合ですが、
(1)”1”をチェック
  状態: a → b
(2)”2”をチェック
  状態: b → b
(3)”.”をチェック
  状態: b → d
(4)”2”をチェック
  状態: d → e
となり、エラーになります。
 
    • good
    • 0
この回答へのお礼

書き込みありがとうございました。
参考になりました!

お礼日時:2003/01/29 18:51

数字が3つ在るからではないでしょうか。


数字の欄の3つめがeです。
4つめはeなので選択肢イは合格です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!