本文へスキップ

平成22年度 秋期 ITパスポート試験 問61

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

問61
頻出度★★☆

表計算ソフトを用いて社員コード中のチェックディジットを検算する。社員コードは 3 けたの整数値で,最下位の 1 けたをチェックディジットとして利用しており,上位 2 けたの各けたの数を加算した値の 1 の位と同じ値が設定されている。セル B2 に社員コードからチェックディジットを算出する計算式を入力し,セル B2 をセル B3~B5 に複写するとき,セル B2 に入力する計算式のうち,適切なものはどれか。

AB
1社員コードチェックディジット
2370
3549
4538
5763
出典 平成22年度 秋期 ITパスポート試験 問61
解説

問 61

  • 不正解ア

    10-整数部(A2/100)+剰余(整数部(A2/10),10)。式全体を 剰余(…,10) で 1 の位に丸めていないため結果が 0〜9 に収まる保証がなく、さらに理由のない 10- の引き算が入っている。A2=370 では 10-3+7=14 となり 1 けたのチェックディジットにならない (正しくは 0)。763 でも 10-7+6=9 となり最下位けた 3 と合わない。549 や 538 ではたまたま正解と同じ値になるので、1 件だけ試して選ぶと誤る点に注意。

  • 不正解イ

    剰余(10-整数部(A2/100)+整数部(A2/10),10)。十の位を取り出す内側の 剰余(…,10) が無いため、整数部(A2/10) は十の位ではなく上位 2 けたの値そのもの (370 なら 37) になる。また不要な 10- の引き算も残っている。A2=370 では 剰余(10-3+37,10)=剰余(44,10)=4 となり、正しい 0 と一致しない。763 でも 剰余(10-7+76,10)=9 で最下位けた 3 と合わない。

  • ウ

    正解 チェックディジットは「上位 2 けた (百の位と十の位) の数を加算した値の 1 の位」と定義されている。表計算で 3 けたの整数から各けたを取り出すには、百の位は 整数部(A2/100)、十の位は 剰余(整数部(A2/10),10) とする。整数部(A2/10) だけでは上位 2 けたの値 (370 なら 37) になってしまうので、内側の 剰余(…,10) で十の位だけを残すのがポイント。この二つを足した和から「1 の位」を取り出すには、さらに外側で 剰余(…,10) を掛ける。したがって 剰余(整数部(A2/100)+剰余(整数部(A2/10),10),10) となるウが正しい。実際に検算すると、370 → 3+7=10 → 剰余(10,10)=0、549 → 5+4=9、538 → 5+3=8、763 → 7+6=13 → 剰余(13,10)=3 となり、4 件すべて社員コードの最下位けたと一致する。A2 は相対参照なので、B2 を B3〜B5 に複写すると参照が A3・A4・A5 へ自動的にずれ、各行で正しく計算される。

  • 不正解エ

    整数部((整数部(A2/100)+整数部(A2/10))/10)。10 で割った 整数部 は「1 の位」ではなく「1 の位を切り捨てた上位けた」を取り出す操作なので、求めたいものと逆になっている。1 の位が欲しいときは 剰余(…,10) を使う。加えて内側の 整数部(A2/10) も十の位になっていない。A2=370 では 整数部((3+37)/10)=4、763 では 整数部((7+76)/10)=8 となり、いずれも最下位けた (0、3) と一致しない。

ここがポイント
  • 表計算で整数から特定のけたを取り出す定石: 百の位=整数部(値/100)、十の位=剰余(整数部(値/10),10)、一の位=剰余(値,10)。「1 の位を取り出す」のは 剰余(…,10)、「1 の位を切り捨てて上位けたを得る」のは 整数部(…/10) と、役割を取り違えないこと。
  • チェックディジットは、コードの入力・転記ミスを検出するために元のコードから一定の計算規則で求めて末尾に付加する数字。本問では「上位 2 けたの和の 1 の位」が規則で、算出値と実際の最下位けたを突き合わせて検算する。式を B2 から B3〜B5 へ複写できるのは、A2 が相対参照で行方向にずれるためである。
用語

解答の記録