ITパスポート試験 平成22年度 秋の問61に挑戦しましょう。
表計算ソフトを用いて社員コード中のチェックデジット検算する。社員コードは3けたの整数値で、最下位の1けたをチェックディジットとして利用しており、上位2けたのを各けたの数を加算した値の1の位と同じ値が設定されている。セルB2に社員コードからチェックディジットを算出する計算式を入力し、セルB2をセルB3〜B5に複写するとき、セルB2に入力する計算式のうち、適切なものはどれか。
ア 10 – 整数部 ( A2 / 100) + 剰余 ( 整数部 ( A2 / 10 ), 10 )
イ 剰余 ( 10 – 整数部 ( A2 / 100 ) + 整数部 ( A2 / 10 ) , 10 )
ウ 剰余 ( 整数部 ( A2 / 100 ) + 剰余 ( 整数部 ( A2 /10 ) , 10), 10)
エ 整数部 (( 整数部 ( A2 / 100 ) + 整数部 (A2 /10 ) ) / 10 )
この問題では
- 整数部
- 剰余
という2つの関数が扱われていますので、まずはこちらを復習しておきましょう。
整数部の使い方は以下の通り。
整数部(算術式)
入力した算術式の整数部分を出力する関数でありまして、例えば、
整数部(5.7)
だったら、入力した5.7の整数部「5」が出力されます。
一方、剰余関数の使い方はこちら。
剰余(算術式1, 算術式2)
1つ目に入れた値を、2つ目の値で割った時の「余り」を返します。
例えば、
剰余(11, 2)
なら「11÷2」で余りが「1」になりますので、1が出力されます。
さて、これを踏まえた上で選択肢をみましょう。
ア 10 – 整数部 ( A2 / 100) + 剰余 ( 整数部 ( A2 / 10 ), 10 )
イ 剰余 ( 10 – 整数部 ( A2 / 100 ) + 整数部 ( A2 / 10 ) , 10 )
ウ 剰余 ( 整数部 ( A2 / 100 ) + 剰余 ( 整数部 ( A2 /10 ) , 10), 10)
エ 整数部 (( 整数部 ( A2 / 100 ) + 整数部 (A2 /10 ) ) / 10 )
はい。あまりにもバラバラで難しすぎますね。
このように「選択肢に関連性・法則がない」問題では、選択肢に実際の値を代入して検証していくしかありません。
問題では「社員コードの上位2けたのを各けたの数を加算した値の1の位と同じ値」をチェックディジットとしていると書かれていますね。
よう社員コードの「100の位」と「10の位」を足した値の「1の位」がチェックディジットになるはず。
例えば、一番上の社員コード「370」だったら、100の位「3」と10の位「7」を足して「10」。
その1の位ですから「0」がチェックリストになるはず。
さて、ということで、実際にA2の値「370」を選択肢の式に代入して「0」になる選択肢を探します。
まず選択肢の「ア」から。
10 – 整数部 ( A2 / 100) + 剰余 ( 整数部 ( A2 / 10 ), 10 )
= 10 – 整数部 ( 370 / 100) + 剰余 ( 整数部 ( 370 / 10 ), 10 )
= 10 – 整数部 ( 3.7) + 剰余 ( 整数部 ( 37 ), 10 )
= 10 – 3 + 剰余 (37, 10 )
= 7 + 7
= 14
はい、これはゼロにならないからダメですね。
続いて選択肢「イ」。
剰余 ( 10 – 整数部 ( A2 / 100 ) + 整数部 ( A2 / 10 ) , 10 )
= 剰余 ( 10 – 整数部 ( 370 / 100 ) + 整数部 ( 370 / 10 ) , 10 )
= 剰余 ( 10 – 整数部 ( 3.7 ) + 整数部 ( 37 ) , 10 )
= 剰余 ( 10 – 3 + 37 , 10 )
= 剰余 ( 44 , 10 )
= 4
はい、これも0にならないので、アウト。
次は選択肢「ウ」。
剰余 ( 整数部 ( A2 / 100 ) + 剰余 ( 整数部 ( A2 /10 ) , 10), 10)
= 剰余 ( 整数部 ( 370 / 100 ) + 剰余 ( 整数部 ( 370 /10 ) , 10), 10)
= 剰余 ( 整数部 ( 3.7) + 剰余 ( 整数部 ( 37) , 10), 10)
= 剰余 ( 3 + 剰余 ( 37 , 10), 10)
= 剰余 ( 3 + 7, 10)
= 剰余 ( 10, 10)
= 0
はい、きましたね。0。
選択肢「ウ」が正解の可能性が濃厚になりましたが、念のために最後の選択肢「エ」も検証しておきましょうか。
整数部 (( 整数部 ( A2 / 100 ) + 整数部 (A2 /10 ) ) / 10 )
= 整数部 (( 整数部 ( 370 / 100 ) + 整数部 (370 /10 ) ) / 10 )
= 整数部 (( 整数部 ( 3.7 ) + 整数部 (37 ) ) / 10 )
= 整数部 (( 3 + 37 ) / 10 )
= 整数部 (40 / 10 )
= 整数部 (4 )
= 4
はい、ゼロじゃないっすね。
ってことで、上記地道な検証の結果、選択肢「ウ」が正解と判明!
この問題のように、選択肢から問題が求めているものがわからず、選択肢がバラバラすぎるならば、
各選択肢に具体的な数値を当てはめて検証する
という手法が手っ取り早いです。
是非試しみてください。
それでは!
Ken