- ベストアンサー
過去問題の不明点
以下の問題が問題集にあったのですが、 解答はエなのですが、なぜエだけがエラーに なるのかが分かりません。 ご存知の方がいらしたら、解説をお願い致します。 問題 次の表は、入力文字列を検査するための状態遷移表である。この検査では、文字を入力した後の状態が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
- みんなの回答 (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になります。 不合格ですね。 状態遷移表はこのように、現在の状態と発生したイベントで、次の状態を指し示し、順に状態を変化させていき、プログラムの条件や処理内容を判定します。 こういった色々な組み合わせのあるロジックを書く場合に、文章で書くと漏れが出たり、ミスが発生しやすくなるのですが、マトリックス(表)にすることで、漏れをなくし、またテストも効率的に進めることが出来ます。 プログラムの世界では、実際によく使う手法です。
その他の回答 (3)
- 100Gold
- ベストアンサー率27% (284/1018)
すいません、間違えました。 一番左の列が現在の状態を示していたのですね。 失礼しました。
お礼
書き込みありがとうございました。
- chubo
- ベストアンサー率36% (41/112)
この表は1文字チェックするごとに処理状態がa~eのどれかの状態に遷移することを 表しています。 例えば一番上の行の読み方は、 現在の状態がaである時 空白を入力されたら → a 数字だったら → b 符号だったら → c 小数点だったら → d その他 → e (エラー) の状態に遷移します。 この遷移表にエを入力した場合ですが、 (1)”1”をチェック 状態: a → b (2)”2”をチェック 状態: b → b (3)”.”をチェック 状態: b → d (4)”2”をチェック 状態: d → e となり、エラーになります。
お礼
書き込みありがとうございました。 参考になりました!
- 100Gold
- ベストアンサー率27% (284/1018)
数字が3つ在るからではないでしょうか。 数字の欄の3つめがeです。 4つめはeなので選択肢イは合格です。
お礼
書き込みありがとうございました。 参考になりました! マトリックス、確かにドキュメント類には 必ず出てきますね。