• ベストアンサー

過去問題の不明点

以下の問題が問題集にあったのですが、 解答はエなのですが、なぜエだけがエラーに なるのかが分かりません。 ご存知の方がいらしたら、解説をお願い致します。 問題 次の表は、入力文字列を検査するための状態遷移表である。この検査では、文字を入力した後の状態が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

質問者が選んだベストアンサー

  • ベストアンサー
  • madman
  • ベストアンサー率24% (612/2465)
回答No.2

初期状態がわからないのですが、aと仮定します。 例えばアの場合 aの状態で'9'が入力されると、一番上の段の数字入力なのでbになります。 次に'.'が入力されると、現在状態bなので2段目の小数点でdになります。 次に△が入力されると、現在状態dなので4段目の空白でaになります。 合格ですね。 エの場合 aの状態で'1'が入力されると、一番上の段の数字なのでbになります。 次に'2'が入力されると、現在状態bなので2段目の数字でbになります。 次に'.'が入力されると、現在状態bなので2段目の小数点でdになります。 次に'2'が入力されると、現在状態dなので4段目の数字でeになります。 不合格ですね。 状態遷移表はこのように、現在の状態と発生したイベントで、次の状態を指し示し、順に状態を変化させていき、プログラムの条件や処理内容を判定します。 こういった色々な組み合わせのあるロジックを書く場合に、文章で書くと漏れが出たり、ミスが発生しやすくなるのですが、マトリックス(表)にすることで、漏れをなくし、またテストも効率的に進めることが出来ます。 プログラムの世界では、実際によく使う手法です。

su-ta
質問者

お礼

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

その他の回答 (3)

  • 100Gold
  • ベストアンサー率27% (284/1018)
回答No.4

すいません、間違えました。 一番左の列が現在の状態を示していたのですね。 失礼しました。

su-ta
質問者

お礼

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

  • chubo
  • ベストアンサー率36% (41/112)
回答No.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 となり、エラーになります。  

su-ta
質問者

お礼

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

  • 100Gold
  • ベストアンサー率27% (284/1018)
回答No.1

数字が3つ在るからではないでしょうか。 数字の欄の3つめがeです。 4つめはeなので選択肢イは合格です。

関連するQ&A