2022年 ITパスポート 午前 問78

関数checkDigitは、10しん桁の整数の各桁の数字が上位の桁から順に格納された整数型の配列originalDigitを引数として、次の手順で計算したチェックデジットを戻り値とする。 プログラムの中のaに入れる字句として、適切なものはどれか。 ここで、配列の要素番号は1から始まる。

[手順]
 (1)  配列originalDigitの要素番号1〜9の要素の値を合計する。
 (2)  合計した値が9より大きい場合は、合計した値を10進の整数で表現した時の各桁の数字を合計する。 この操作を、合計した値が9以下になるまで繰り返す。
 (3)  (2)で得られた値をチェックデジットとする。

[プログラム]
〇整数型:checkDigit(整数型の配列:originalDidit)
 整数型:i, j, k
 j ← 0
 for(iを1からoriginalDiditの要素数まで1ずつ増やす)
  j ← j + originalDidit[i]
 endfor
 while(jが9より大きい)
  k ← j÷10の商 /* 10進9桁の数の場合、jが2桁を超えることはない */
    a  
 endwhile
 return j

 ア  j ← j - 10×k
 イ  j ← k + (j - 10×k)
 ウ  j ← k + (j - 10)×k
 エ  j ← k + j


答え イ


解説
手順からwhile〜endwhileで行うのは変数jにj割る10の商と、j割る10の剰余(余り)の和になり、商は1つ前の行で求めていてkになり、剰余を求める計算式はjを10で割ったときの商がkなので
 j - 10×k
なり、aに入るのは
 j ← k + (j - 10×k)
(イ)になる。


キーワード
・チェックデジット

キーワードの解説
  • チェックデジット
    チェックデジットは検査文字とも呼び、データに検査用の文字(チェックデジット)を付加し、チェックデジットを付加したものをデータとして扱う。
    通信のパリティビットやCRCなどもチェックデジットの一種。
    チェックデジットの例としては、バーコード、運転免許証の番号、クレジットカードの番号などで使われている。

もっと、「チェックデジット」について調べてみよう。

戻る 一覧へ 次へ