本文へスキップ

平成27年度 春期 ITパスポート試験 問97

この問題の解説と、これまでの解答の記録です。

問97
頻出度★★☆

F社では,新製品を開発するに当たり,100人のモニタを募集して市場調査を行った。モニタには,性能,価格,デザインの三つの項目について,それぞれを重視するかどうかを“はい”又は“いいえ”のいずれかで答えてもらった。 モニタから得られた回答は,図1のレコード形式で回答ファイルに登録した。 レコードの項目“性能”,“価格”,“デザイン”には,それぞれ,質問に対する回答が“はい”の場合には1が,“いいえ”の場合には0が記録されている。 回答ファイルの中から,条件に合致するレコード数を表示するために,次の命令が使用できる。 件数表示(条件) ここで,条件には,and,or及び[ ]を組み合わせた複合条件を指定できる。条件の評価は[ ]の中が優先して評価される。また,[ ]の中にさらに[ ]を記述することもできる。 条件を変えて,命令を実行した結果を表1に示す。 表1 命令を実行した結果

条件件数表示命令の実行結果
性能=155
価格=160
デザイン=145
[性能=1]and[価格=1]30
[価格=1]and[デザイン=1]25

次の命令を実行したときに表示されるレコード数は,どのような条件に合致する人数を表しているか。 件数表示([性能=1] and [デザイン=0])

出典 平成27年度 春期 ITパスポート試験 問97
解説

問 97

  • 不正解ア

    「性能とデザインの両方を重視する」人数を数えたいのであれば、条件は「件数表示([性能=1] and [デザイン=1])」と、デザイン側も 1 でなければならない。本問の命令はデザイン側が =0、すなわち「デザインを重視しない」を条件にしているので、デザインを重視する人はそもそも抽出対象から外れる。and の意味は正しく捉えているが、=1 と =0 の違い(肯定と否定)を読み飛ばした場合に選んでしまう誤答である。

  • イ

    正解 正解は「イ 性能は重視するが、デザインは重視しないモニタの人数」。命令「件数表示([性能=1] and [デザイン=0])」は、条件式に合致するレコードだけを数え上げてその件数を表示するものである。ここで各モニタの回答は「重視する=1、重視しない=0」という 2 値で記録されているので、[性能=1] は「性能を重視する」、[デザイン=0] は「デザインを重視しない」という条件を表す。この二つを結ぶ and(論理積)は「両方の条件を同時に満たすもの」だけを残す演算なので、抽出されるのは「性能は重視し、なおかつデザインは重視しない」モニタのレコードだけになる。集合で考えると、性能を重視する人の集合と、デザインを重視する人の集合の補集合(デザインを重視しない人の集合)との共通部分にあたる。したがって表示されるレコード数は、性能重視かつデザイン非重視のモニタの人数を表す。ポイントは、and が条件の絞り込み(両方成立)であること、そして「=0」が否定(NOT 重視する=重視しない)を意味することの二点である。

  • 不正解ウ

    「いずれか一方を重視する」という、条件のどちらかが成立すればよい関係を表すのは or(論理和)であって and ではない。本問の命令に使われている and は論理積で、二つの条件が同時に成立するレコードだけに絞り込む。and と or を取り違えると、抽出される集合は共通部分(狭い範囲)ではなく和集合(広い範囲)になってしまい、意味がまったく変わる点に注意したい。なお厳密には「いずれか一方だけ」は排他的論理和(XOR)の考え方にあたり、これも本問の and とは異なる。

  • 不正解エ

    「性能もデザインも重視しない」人数を数えたいのであれば、条件は「件数表示([性能=0] and [デザイン=0])」と、性能側も 0 でなければならない。本問の命令は性能側が =1、すなわち「性能を重視する」を条件としているので、性能を重視しない人は抽出されない。二つの条件のうち片方だけを見て「=0 があるから両方否定だろう」と早合点すると選びやすい誤答で、条件式は項目ごとに値を確認する必要がある。

ここがポイント
  • 論理演算 and(論理積)は「両方の条件を同時に満たす」レコードだけに絞り込む演算で、集合でいえば共通部分にあたる。一方 or(論理和)は「どちらか一方でも満たせばよい」=和集合であり、条件式の意味を読むときはこの and/or の区別が最重要となる。
  • 回答を「重視する=1、重視しない=0」のように 2 値で符号化したデータでは、[項目=1] が肯定、[項目=0] が否定(NOT)を表す。条件式は項目ごとに 1 か 0 かを一つずつ確認し、そのうえで結合している論理演算子を見る、という順序で読むと取り違えを防げる。
用語

解答の記録