平成22年秋期試験問題 問61

表計算ソフトを用いて社員コード中のチェックディジットを検算する。社員コードは3けたの整数値で,最下位の1けたをチェックディジットとして利用しており,上位2けたの各けたの数を加算した値の1の位と同じ値が設定されている。セルB2に社員コードからチェックディジットを算出する計算式を入力し,セルB2をセルB3~B5に複写するとき,セルB2に入力する計算式のうち,適切なものはどれか。
61.png

  • 10-整数部(A2/100)+剰余(整数部(A2/10),10)
  • 剰余(10- 整数部(A2/100)+整数部(A2/10),10)
  • 剰余(整数部(A2/100)+剰余(整数部(A2/10),10),10)
  • 整数部((整数部(A2/100)+整数部(A2/10))/10)
正解 問題へ
分野:テクノロジ系
中分類:ソフトウェア
小分類:オフィスツール
解説
チェックディジット(check digit, 検査数字)とは、符号の入力誤りなどを検出するために元の符号に付加される数字のことです。

この問題の中の社員コード370, 549を例とすると、それぞれ最下位1けたである0及び9がチェックディジットです。

この数字の求め方は、"上位2けたの各けたの数を加算した値の1の位"なので、
  • 370… 3+7=10 1の位の 0
  • 549… 5+4=9 1の位である 9
がそれぞれチェックディジットになります。表のB列にこの数字が出力されればよいというわけです。

さて計算式ですが、わからない場合は一つずつ計算していく方法が確実です。社員コードの370を代入して検算してみましょう。
  •  10-整数部(370/100)+剰余(整数部(370/10),10)
    =10-整数部(3.7)+剰余(整数部(37),10)
    =10-3+7
    =14 (×)
  •  剰余(10-整数部(370/100)+整数部(370/10), 10)
    =剰余(10-整数部(3.7)+整数部(37), 10)
    =剰余(10-3+37,10)
    =剰余(44,10)=4 (×)
  •  剰余(整数部(370/100)+剰余(整数部(370/10),10),10)
    =剰余(整数部(3.7)+剰余(整数部(37),10),10)
    =剰余(3+7,10)
    =剰余(10,10) = 0 ()
  •  整数部((整数部(370/100)+整数部(370/10))/10)
    =整数部((整数部(3.7)+整数部(37))/10)
    =整数部((3+37)/10)
    =整数部(40/10)=4 (×)
このように地道に計算していけば、確実に答えにたどりつけます。もし同一の答えが複数出たときは、今度は違う値を代入してみればどれが正しいのかが判明するはずです。

Pagetop