必ず受かる情報処理技術者試験

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. ITパスポート
  3. 平成24年度春季問題一覧
  4. 平成24年度春季問題100-解答・解説-分析

平成24年度春季問題

問題100

多くの市販の書籍には、書籍を識別するためのISBN(International Standard Book Number)コードが付けられている。ISBNコードは、0~9の数字を使った13桁の記号で構成され、左側から桁を数える。最も左側の桁を1桁目とする。1桁目から12桁目までは、国記号、出版社記号及び書籍固有の記号などが含まれる。

ISBNコードの13桁目(最も右側の桁)はチェック数字と呼ばれる桁である。ISBNコードのチェック数字は、1桁目から12桁目の数字を使って、次の計算方法によって求める。ここで、図1のように1桁目から12桁目の数字をa1~a12,チェック数字をXとする。


[チェック数字の計算方法]
(1) a1~a12について、奇数桁には1、偶数桁には3の重みを付ける。
(2) a1~a12の各桁に、それぞれの桁に対応した重みを掛けたものの和Sを求める。
S=a1×1+a2×3+a3+・・・+a12×3

(3) Sを10で割った余りRを求める。
(4) 10からRを引いた値をチェック数字Xとする。なお、この値が10になった場合は、チェック数字は0とする。

表計算ソフトを使ってチェック数字を求めることにした。チェック数字を求める次のワークシート中のセルN2に入れる適切な式はどれか。このワークシートはセルB2~M2に数字を入力することで、繰返し使うものとする。

(1) セルB1~N1に、ISBNコードの桁数を表す数値を入力する。
(2) セルB2~M2に、ISBNコードの1~12桁を、各セルに1桁ずつ入力する。
(3) セルB3~N3に、ISBNコードの各桁に対応した重みを入力する。
(4) セルB5に、ISBNコードに各桁の重みを掛けたものの合計を求める。
(5) セルB6に、剰余関数を使った次の式を入力する。
   剰余(B5,10)
(6)セルN2に、チェック数字を求める式を入力する。

10-B6
B6-10
10-剰余(B6,10)
剰余(10-B6,10)

表計算ソフトを使ってチェック数字を求めることにした。チェック数字を求める次のワークシート中のセルN2に入れる適切な式はどれか。このワークシートはセルB2~M2に数字を入力することで、繰返し使うものとする。

(1) セルB1~N1に、ISBNコードの桁数を表す数値を入力する。
(2) セルB2~M2に、ISBNコードの1~12桁を、各セルに1桁ずつ入力する。
(3) セルB3~N3に、ISBNコードの各桁に対応した重みを入力する。
(4) セルB5に、ISBNコードに各桁の重みを掛けたものの合計を求める。
(5) セルB6に、剰余関数を使った次の式を入力する。
   剰余(B5,10)
(6)セルN2に、チェック数字を求める式を入力する。

10-B6
B6-10
10-剰余(B6,10)
剰余(10-B6,10)

解答:エ

<解説>

ワークシートには〔チェック数字の計算方法〕の(2)の手順である「それぞれの桁に対応した重みを掛けたものの和S」がセルB5に、(3)の手順にあたる「Sを10で割った余りRを求める。」がセルB6にそれぞれ計算されている。

よって(4)の手順「10からRを引いた値をチェック数字Xとする。なお,この値が10になった場合は,チェック数字は0とする。」の部分を計算式としてセルN2に入力することで各けたに対応するチェック数字を求めることができるようになります。

B6には和Sを10で割った余剰Rが入力されているので、セルN2には10からRを引く「10-B6」の計算式が適切であるように思いますが、セルB6の値が0であった場合には「10-0=10」となってしまいチェック数字が2ケタとなってしまう問題が生じます。チェック数字は1ケタでなくてはなりませんから、余剰関数を使用することでN2の値が必ず1ケタの数字がN2の値になるようにした※「余剰(10-B6,10)」が適切な計算式ということになります。

※B6=0の 場合、N2=10-0=10,N2=余剰(10-0,10)=0 とチェック数字が異なってしまいます。