BNFと構文図 想定問題 1
次の表現形式で表すことができない数値として,最も適切なものはどれか。ただし,::= は定義を表し,| はORを表す。また,並べて書いたものは,その順につなげることを表す。
実数 ::= 本体|本体 指数
本体 ::= 桁列|桁列 . 桁列
指数 ::= E 桁列|E 正負 桁列
正負 ::= +|-
桁列 ::= 桁|桁 桁列
桁 ::= 0から9までの数字1文字
解説
ポイント
指数(E)つきの数値を作る決まりから,作れない数値を選ぶ問題です。
考え方と解き方
決まり:本体は「桁列」か「桁列 . 桁列」。指数は「E 桁列」か「E 正負 桁列」。実数は「本体」か「本体 指数」です。
正負(+,-)が出てくるのは,指数の中(E のすぐ後ろ)だけです。
①:本体「3 . 14」だけで作れる
②:本体「25」+指数「E 3」で作れる
③:本体「1 . 5」+指数「E + 8」で作れる
⑤:本体「7 . 0」+指数「E - 12」で作れる
④:先頭に「-」があるが,本体は桁列で始まるので正負は使えない。答えは ④ -2.5E3
ほかの選択肢
③・⑤:+や-がついていても,E の後ろなら指数の「E 正負 桁列」で作れます。⑤の 7.0 も,「.」のあとの 0 が桁列なので本体になります。
覚えておくこと
- 並べて書いた A ::= B C は「B のあとに C を続けたもの」(テキスト・覚えること)
- 部品がどこにしか出てこないかを見落とさない(例:符号が使えるのは「符号 数字列」の形だけ)(テキスト・ひっかけ)
類似する過去問:令和元年度 基礎科目 I-2-4
テキスト「BNFと構文図」を読む