表計算ソフトを用いて,二つの科目 X,Y の点数を評価して合否を判定する。それぞれの点数はワークシートのセル A2,B2に入力する。合格判定条件 (1) 又は (2) に該当するときはセル C2に“合格”,それ以外のときは“不合格”を表示する。セル C2に入力する式はどれか。 〔合格判定条件〕 (1) 科目 X と科目 Y の合計が120点以上である。 (2) 科目 X 又は科目 Y のうち,少なくとも一つが100点である。
| A | B | C | |
|---|---|---|---|
| 1 | 科目 X | 科目 Y | 合否 |
| 2 | 50 | 80 | 合格 |
この問題の解説と、これまでの解答の記録です。
表計算ソフトを用いて,二つの科目 X,Y の点数を評価して合否を判定する。それぞれの点数はワークシートのセル A2,B2に入力する。合格判定条件 (1) 又は (2) に該当するときはセル C2に“合格”,それ以外のときは“不合格”を表示する。セル C2に入力する式はどれか。 〔合格判定条件〕 (1) 科目 X と科目 Y の合計が120点以上である。 (2) 科目 X 又は科目 Y のうち,少なくとも一つが100点である。
| A | B | C | |
|---|---|---|---|
| 1 | 科目 X | 科目 Y | 合否 |
| 2 | 50 | 80 | 合格 |
論理積(AND)を使っている。AND は三つの条件がすべて真のときだけ真になるため、「すべて満たす」ことを要求してしまう。本問の条件は「いずれか一方でも満たせば合格」なので不適切。例の A2=50、B2=80 では A2=100 も B2=100 も偽なので AND は偽となり「不合格」と表示され、表の「合格」と矛盾する。
論理積(AND)を使っている点でアと同じ誤りに加え、真のとき「不合格」、偽のとき「合格」と表示の順序も逆になっている。論理の結合も表示も二重に誤り。
正解 合格条件は「(1) 科目Xと科目Yの合計が120点以上」または「(2) 科目Xか科目Yの少なくとも一方が100点」で、どちらか一方でも満たせば合格になる。つまり三つの条件 (A2+B2)≧120、A2=100、B2=100 の「いずれかが真」なら合格なので、これらを束ねる論理関数は論理和(OR)である。さらに IF 文は、論理和が真のとき「合格」、偽のとき「不合格」を表示する必要がある。この二点を満たすのが論理和を使い真側に「合格」を置いた ウ である。例として A2=50、B2=80 では合計130が120以上で第1条件が真となり、論理和が真→「合格」と表示され、表の C2「合格」と一致する。
論理関数は論理和(OR)で正しいが、IF の表示順が逆で、論理和が真のとき「不合格」、偽のとき「合格」を表示してしまう。条件を満たすときにこそ「不合格」と出る。例の A2=50、B2=80 では論理和が真→「不合格」となり、表の「合格」と矛盾する。