2022.05.12 11:28
メール 印刷 Facebook X LINE はてなブックマーク
こんにちは! 情報処理技術者試験「ITパスポート試験(iパス)」の公式キャラクター、上峰亜衣(うえみね あい)です。このコラムでは、ITパスポート試験の公開問題の中から、金融業界で活躍されている皆さんに特にオススメの問題を、月に一度ご紹介しています。今月の問題は「プログラム(チェックデジット)」についてです。

ITパスポート試験(iパス)問題例(公開問題 令和4年度分 問78)

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

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

〔プログラム〕
○整数型: checkDigit(整数型の配列: originalDigit)
整数型: i、 j、 k
j ← 0
for (i を 1 から originalDigitの要素数 まで 1 ずつ増やす)
j ← j + originalDigit[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

解 説

正解は「イ」

チェックデジットを計算(生成)する処理を題材にした、プログラムの問題。普遍的・本質的なプログラミング的思考力を問うために擬似言語を用いている。問われている「プログラム中のa」は、〔手順〕(2)に相当するwhile~endwhileの処理内にある。一つ前の行の「k ← j ÷ 10 の商」で、合計値(j)の十の位の数(k)を求めているので、「プログラム中のa」では、合計値(j)の一の位の数を求めてkと合計すればよい。一の位の数は、jから10×kを引くことで求められる。よって正解は「イ」。

(亜衣)チェックデジットは、識別用の番号に付加される、その番号の入力誤りや偽造などを検査するための数字です。身近なところでは、金融機関の口座番号、クレジットカード番号、バーコード、免許証番号などに使われています。

(亜衣)2022年4月から、iパスでプログラムの問題が出題されるようになりました。高等学校において、「情報I」が共通必履修科目(全ての生徒が必ず履修する科目)になったことに対応するものです。デジタル社会における情報教育においては、情報活用能力の一つとして「プログラミング的思考力」も求められていますので、社会人の皆さんによる「学び直し」の上でも、ぜひiパスをご活用いただければと思います!

執筆:独立行政法人情報処理推進機構/国家資格・試験部 原田明理

参考:プレス発表 ITパスポート試験にプログラミング的思考力等の出題を追加(詳しくはこちら)

ITパスポート試験とは:
経済産業省が所管する情報処理技術者試験の一区分で、ITを利活用するすべての社会人・学生が備えておくべき、ITに関する基礎的な知識が証明できる国家試験です。出題範囲は、ITや情報セキュリティの基礎知識だけでなく、コンプライアンス、経営全般に関する基礎知識など幅広い分野にわたります。当試験は、会場のコンピュータで解答するCBT方式により、通年で随時実施しています。ITパスポート試験(iパス)公式Webサイ

すべての記事は有料会員で!
無料会員に登録いただけますと1ヵ⽉間無料で有料会員向け記事がご覧いただけます。

有料会員の申し込み 無料会員でのご登録
メール 印刷 Facebook X LINE はてなブックマーク

関連キーワード



おすすめ

アクセスランキング(過去1週間)