令和元年度 基礎科目の一覧へ

令和元年度・基礎科目 I-2-4

BNFで表せない数値

問題文をPDFで見る

解説

ポイント

BNF(バッカス・ナウア記法)で書かれたルールを読んで,そのルールでは作れない数値を見つける問題です。

考え方と解き方

「A ::= B|C」は「A は B か C」,「A ::= B C」は「B のあとに C を並べたもの」という意味です。

符号(+,-)が出てくるのは「整数」の定義の中だけで,しかも符号のすぐ後ろには数字列が要ることに注目します。

①:-19 が「符号 数字列」の整数,.1 が小数なので,「整数 小数」の形で作れます。

②:小数点のあとに数字列なので,小数として作れます。

③:- のすぐ後ろが小数点です。整数にするには - の後ろに数字列が要り,小数は小数点から始まるので符号をつけられません。作れません。

④:4 が整数,.35 が小数なので,「整数 小数」の形で作れます。

⑤:「符号 数字列」の整数として作れます。答えは ③ -.37

覚えておくこと

  • BNF:::= は定義,| は「または」,並べて書いたものは「その順に続けたもの」
  • 定義を1つずつたどって,文字列が組み立てられるかを確かめる
  • 符号が使えるのは「符号 数字列」の形だけ。符号のすぐ後ろに小数点は置けない

出典:令和元年度 技術士第一次試験 基礎科目 I-2-4(公益社団法人日本技術士会) ジャンル:情報・アルゴリズム