BNFで表せない数値
解説
ポイント
BNF(バッカス・ナウア記法)で書かれたルールを読んで,そのルールでは作れない数値を見つける問題です。
考え方と解き方
「A ::= B|C」は「A は B か C」,「A ::= B C」は「B のあとに C を並べたもの」という意味です。
符号(+,-)が出てくるのは「整数」の定義の中だけで,しかも符号のすぐ後ろには数字列が要ることに注目します。
①:-19 が「符号 数字列」の整数,.1 が小数なので,「整数 小数」の形で作れます。
②:小数点のあとに数字列なので,小数として作れます。
③:- のすぐ後ろが小数点です。整数にするには - の後ろに数字列が要り,小数は小数点から始まるので符号をつけられません。作れません。
④:4 が整数,.35 が小数なので,「整数 小数」の形で作れます。
⑤:「符号 数字列」の整数として作れます。答えは ③ -.37
覚えておくこと
- BNF:::= は定義,| は「または」,並べて書いたものは「その順に続けたもの」
- 定義を1つずつたどって,文字列が組み立てられるかを確かめる
- 符号が使えるのは「符号 数字列」の形だけ。符号のすぐ後ろに小数点は置けない
出典:令和元年度 技術士第一次試験 基礎科目 I-2-4(公益社団法人日本技術士会) ジャンル:情報・アルゴリズム