ITパスポート試験 令和4年度公開問題(全100問) トップへ
Part 4(問76〜100)

78

関数 checkDigit は、10 進 9 桁の整数の各桁の数字が上位の桁から順に格納された整数型の配列 originalDigit を引数として、次の手順で計算したチェックデジットを返り値とする。プログラム中の j に入れる字句として、適切なものはどれか。ここで、配列の要素番号は 1 から始まる。(図表あり) 【手順】 (1) 配列 originalDigit の要素番号 1〜9 の要素の値を合計する。 (2) 合計した値が 9 より大きい場合は、合計した値を 10 進で表現したときの各桁の数字の合計を合計する。この操作を、合計した値が 1 桁以下になるまで繰り返す。 (3) (2) で得られた値をチェックデジットとする。 【プログラム】 ○整数型: checkDigit(整数型配列: originalDigit)  整数型: i, j, k  j ← 0  for (i を 1 から originalDigit の要素数 まで 1 ずつ増やす)   j ← j + originalDigit[i]  endfor  while (j が 9 より大きい)   k ← 0   endwhile  return j

Aj ← j - 18 × k
Bj ← k + (j - 18) × k
C[判読不能: ウの選択肢が画像解像度の限界により正確に読み取れない]
Dj ← k

解説

チェックディジットは、入力データの誤りを検出するために元のデータに付加される検査用の数字です。例えばバーコードやクレジットカード番号に使われ、特定の計算式(モジュラス演算など)で算出されます。プログラムの処理結果として正しいチェックディジットが得られる選択肢を選ぶ問題では、与えられたアルゴリズムに従って各桁の計算を追跡する必要があります。