本文へスキップ

平成28年度 秋期 ITパスポート試験 問74

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

問74
頻出度★★☆

“気温”表の2011年の7月1日から8月31日までの間で,最高気温が35度以上のレコードを全て抽出したい。抽出条件として,適切なものはどれか。 気温

年月日最高気温
20111112
20111211
2011139
::::
201173134
20118136
::::
2011123110
20121111
出典 平成28年度 秋期 ITパスポート試験 問74
解説

問 74

  • 不正解ア

    月の条件が (月 = 7 and 月 = 8) で、1つのレコードの月が同時に7かつ8になることはないため、この括弧内は常に偽となり1件も抽出されない。さらに 最高気温 ≦ 35 は「35度以下」を意味し、求める「35度以上」と逆向き。二重に誤り。

  • 不正解イ

    最高気温 ≧ 35 は正しいが、月の条件が (月 = 7 and 月 = 8) と and になっており、同時に7月かつ8月であるレコードは存在しないため結果は空になる。7月・8月の両方を取るには or が必要。

  • 不正解ウ

    月の条件 (月 = 7 or 月 = 8) は正しいが、最高気温 ≦ 35 が「35度以下」となっており、求める「35度以上」と逆。低温側のレコードを拾ってしまう。

  • エ

    正解 抽出したいのは「2011年」かつ「7月1日~8月31日」かつ「最高気温が35度以上」のレコード。エは 年 = 2011 and (月 = 7 or 月 = 8) and 最高気温 ≧ 35 で、この3条件を正しく表す。ポイントは月の指定で、各レコードの月は1つの値しか持たないため、7月と8月の両方のレコードを取るには「月 = 7 または 月 = 8」と or で結ぶ必要がある。また「35度以上」は35を含めて上側なので 最高気温 ≧ 35 が正しい。よってエが適切。

ここがポイント
  • 範囲を「いずれかに該当」で指定するときは or、「同時に両方を満たす」ときは and。1レコードの1項目が複数の値を同時に取ることはないので、月 = 7 と 月 = 8 のような排他的な値を and で結ぶと必ず空集合になる。
  • 「以上」は境界値を含み上側(≧)、「以下」は境界値を含み下側(≦)。日本語の条件文を比較演算子へ正しく対応させる。
用語

解答の記録