令和7年度 秋期 応用情報技術者試験 午前 問21

組込みシステムのプログラムで,放された状態では 0 になり,押された状態では 1 になるスイッチの値を読み込んでいる。このプログラムによって,スイッチの値は周期的に適切なタイミングで読み込まれ,チャタリング処理などの適切な処理が行われるものとし,a が今回の値で,b が前回の値とする。このスイッチが放された状態から押された状態に変化したことを検出するための論理式はどれか。ここで,”   ‾\overline{\ \ } ” は論理否定を表す。

解答・解説

正解: ア. a・b‾\overline{b}

スイッチの状態は以下のように表されます。

  • 放された状態:0
  • 押された状態:1

「放された状態から押された状態に変化したこと」を検出するためには、以下の2つの条件を 同時に満たす(論理積) 必要があります。

  1. 今回の値(aa)が押された状態(1)である
  2. 前回の値(bb)が放された状態(0)である

これらを論理式で表すと以下のようになります。

  • 条件1:aa
  • 条件2:b‾\overline{b} (bb の論理否定)

したがって、両方を満たす論理積(AND)は a・b‾a・\overline{b} となります。

各選択肢の解説

  • ア:a・b‾a・\overline{b}
    正解です。今回が押された状態(1)かつ、前回が放された状態(0)であることを表します。
  • イ:a‾・b\overline{a}・b
    今回が放された状態(0)かつ、前回が押された状態(1)であることを表します。つまり「押された状態から放された状態に変化したこと」を検出します。
  • ウ:a+b‾a+\overline{b}
    論理和(OR)になっているため、今回が押されているか、前回が放されているかのどちらかを満たせば真となります。状態の変化を正確に検出できません。
  • エ:a‾+b\overline{a}+b
    今回が放されているか、前回が押されているかのどちらかを満たせば真となります。状態の変化を正確に検出できません。

Spineチーム