平成26年度 春期 午前 問5
情報に関する理論
状態遷移表に関する問題
表は,文字列を検査するための状態遷移表である。検査では,初期状態を a とし,文字列の検査中に状態が e になれば不合格とする。解答群で示される文字列のうち,不合格となるものはどれか。ここで,文字列は左端から検査し,解答群中の△は空白を表す。
〔状態遷移表〕
| 現在の状態 \ 文字 | 空白 | 数字 | 符号 | 小数点 | その他 |
|---|---|---|---|---|---|
| a | a | b | c | d | e |
| b | a | b | e | d | e |
| c | e | b | e | d | e |
| d | a | e | e | e | e |
- ア+0010
- イ−1
- ウ12.2
- エ9.△
答えと解説を見る
✓ これが正解ウ12.2
解説
小数点の後に数字を許さない検査です。
状態遷移表は、いまの状態の行と、これから読む文字の列とが交わるところに次の状態が書いてある表です。読み方は一つで、初期状態から始めて文字列を一文字ずつ左から取り、そのつど行を移していきます。この表の要点は状態 d の行にあります。d は小数点をすでに読んだ状態で、その行は空白のときに a へ戻るほかは、どの文字でも e になります。つまりこの検査は、小数点の後ろに数字が続く書き方を認めていません。正解にあたる文字列は、数字を二つ読んで b にとどまり、小数点で d に移り、そこでもう一つ数字を読むために e に落ちます。表を眺めて形で当てるのではなく、候補すべてを一文字ずつ指でなぞって引くのが確実です。一つ見つけたところで止めず、四つとも引いておきます。
ほかの選択肢はなぜ違うのか
- ア+0010:先頭が符号なので a から c へ移り、続く数字で b になります。そのあとは数字が並ぶだけなので b にとどまり続け、最後まで不合格の状態に入りません。
- イ−1:符号を読んで c へ移り、次の数字で b になったところで読み終わります。取る文字が二つしかなく、そのどちらでも不合格の状態に落ちないため、検査を通ります。
- エ9.△:数字で b、小数点で d と進むところまでは正解と同じ道をたどりますが、最後に取るのが空白です。d の行で空白だけは a に戻る扱いなので、一つの数が終わったとみなされます。
出典:平成26年度 春期 基本情報技術者試験 午前 問5(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)