平成22年度 秋期 ITパスポート試験 問61 解説 チェックディジットの計算式
表計算ソフトを用いて社員コード中のチェックディジットを検算する。社員コード は 3 けたの整数値で,最下位の 1 けたをチェックディジットとして利用しており,上 位 2 けたの各けたの数を加算した値の 1 の位と同じ値が設定されている。セル B2 に 社員コードからチェックディジットを算出する計算式を入力し,セル B2 をセル B3〜 B5 に複写するとき,セル B2 に入力する計算式のうち,適切なものはどれか。
- ア 10-整数部(A2/100)+剰余(整数部(A2/10), 10)
- イ 剰余(10-整数部(A2/100)+整数部(A2/10), 10)
- ウ 剰余(整数部(A2/100)+剰余(整数部(A2/10), 10), 10) ✓ 正答
- エ 整数部((整数部(A2/100)+整数部(A2/10))/10)
解説
この問題は、3けたの整数値から「百の位」と「十の位」をそれぞれ抽出し、その和を求めたあと、さらにその「1の位」を取り出すという手順で解決します。例えば社員コードが 370 の場合、百の位は 3、十の位は 7 です。これらを足すと 10 になり、その1の位である 0 がチェックディジットとなります。
数値から各桁を取り出す仕組み
表計算ソフトにおいて、数値の特定の桁を取り出すには整数演算を活用します。
まず、百の位を取り出すには とします。370 を 100 で割ると 3.7 となり、その整数部をとることで 3 が抽出されます。
次に、十の位を取り出すには工夫が必要です。単純に とすると、370 は 37 になります。ここから 1の位(この場合は 7)を取り出すために、10 で割った余りを求める「剰余」関数を使います。つまり、 と記述することで、37 を 10 で割った余りの 7 が取り出せます。
合計の1の位を求める計算式
必要なパーツが揃ったので、これらを合体させます。
- 百の位:
- 十の位:
- 両者の和:
最後に、この和の「1の位」を求めるために、計算結果全体を 10 で割った余りを出力します。これが選択肢ウの式である となります。
データ処理におけるチェックディジットの役割
この問題で扱われているチェックディジットは、入力ミスや転記ミスを防ぐための非常に重要な技術です。システムにおいて数字を打ち込む際、人間は誤入力を起こす可能性がありますが、あらかじめ計算ルールを定めておけば、打ち込まれた数字がそのルールを満たしているか照合することで、誤りを自動的に検知できます。
実務では、クレジットカード番号やマイナンバー、バーコードなど、多くの識別番号にチェックディジットが含まれています。表計算ソフトでの演算を通してこのロジックを理解することは、システムがどのようにデータの整合性を守っているのかという、データ品質管理の基礎を学ぶことにつながります。プログラミングやデータベースを学ぶ際にも、こうした数値演算のスキルは基本として役立ちます。