技術を楽しもう!

IT(ネットワーク)業界を中心に、仕事や趣味等、色々な技術を記録します。

基本情報対策を友人にレクチャー(第2回) ②

https://www.pakutaso.com/shared/img/thumb/PAK105215423_TP_V.jpg

第2回の続きです。今回は問2の内容について記録します。

彼が思考に詰まった際、少し助言をすると 試行錯誤の末に正解にたどり着くので、とても嬉しそうでした。 私まで嬉しくなってきます。

ちなみになぜ平成29年春の問題なのかは、 初日に彼の持っているテキストを開いて、たまたま開いた午後問題のページだったからです。 深い意味はありません。

レクチャーを実施するに至った経緯は下記を参照ください。 www.it-enjoy.com

最初に話したこと

  • A/D変換機等の特殊な用語が出てくるが落ち着いて読むべし
  • 戸惑う用語が出てきた際、問題文や図表で概要は理解できると信じるべし
  • システムの目的は何か?を考えるべし

H29春 午後 問2

f:id:takashi-tobey:20200120215232p:plain
H29春 午後 問2-1

f:id:takashi-tobey:20200120215552p:plain
H29春 午後 問2-2

f:id:takashi-tobey:20200120222022p:plain
H29春 午後 問2-3

f:id:takashi-tobey:20200120222047p:plain
H29春 午後 問2-4

設問1 a

例のデジタル数字「2」という表示がされる際、 "7"のビットが"1"なら、一番上の横棒の箇所が点灯するという意味です。 "7"のビットが"1"だから、デジタル数字「7」が浮かび上がるのではありません。

最初に説明した際、彼は「7,5,4,3,2,1」とノートにメモをしました。 点灯すべきビットの位置をメモしたとのことでした。

着眼点は良いのですが、これでは混乱を招いてしまうので、
それぞれのビットがON(1)か、OFF(0)かを意識することが重要だと助言しました。
図2のデジタル数字が「6」なので、 これに沿ってビットのパターンを考えます。 次のように表を書いてみると良いと説明しました。

7 6 5 4 3 2 1 0
1 0 1 1 1 1 1 0

前半の1011と後半の1110に分けて、16進数に変換します。 2進数と16進数の変換を、彼は理解しているようなので説明が楽でした。

1011(2進数) = 11(10進数) = B(16進数)
1110(2進数) = 14(10進数) = E(16進数)

設問1 b, c

同じように表を書くと良いと説明しました。 b は2進数がわかっていれば、感覚で解けるはずです。 問題文より、温度基準値は四捨五入であることを考えれば、c も解けます。 レベルが0ではなく1から始まることに注意が必要です。

温度基準値 A/D変換機出力(2進表記) レベル
0 000 1
10 001 2
20 010 3
30 011 4
40 100 5
50 101 6
60 110 7
70 111 8

設問2 d, e

d はフローチャートの問題です。 基本情報の問題で問われるのは、ひし形記号(条件分岐)の箇所が多いです。 矢印の向きを考えればなんとなく想像はつきますが、 これは問題文の凡例にも書いていない部分なので、前提を理解しておくことが重要です。

d の条件が「Yes」つまり条件を満たす場合に処理を再度「INPUT 2」の処理を行い、 「No」つまり条件を満たさない場合に、「INPUT 3」の処理へ進むということです。

INPUT または OUTPUT の後に続く数値はI/Oポート番号なので、 表2と表3より意味を考えます。

「INPUT 2」はA/D変換機に作用する、GRへ対する読み込み処理のようです。 ここから、再度「INPUT 2」が行われる処理を考えると、下記どちらかが正解に結び付くと考えます。

番号2のI/Oポートから読み込んだ値が0ならば、変換中を示す。
番号2のI/Oポートから読み込んだ値が0以外ならば、A/D変換が完了して出力値が確定していることを示す。

d の空欄があるひし形位置からYesの場合に再処理となる条件を考えれば良いと説明すると、 「まだ変換中だから再処理を行う」ということを考慮し、彼は前者であると結論を出しました。 ※YesとNoが逆であれば、後者になりますが。

e はシステムの最後に何が行われるかを回答する問題です。 例によって悩んでいるので、「これは何をするシステムか?」を改めて考えるよう促しました。

彼は問題文の下記に気づきました。

対応した値を7セグメントLED(以下、LEDという)に表示するシステムである。

INPUTは機器からデータを読み込む処理であり、 OUTPUTは機器へデータを書き込む処理です。 LEDの表示であれば、読み込みではなく書き込みだろうということです。 なので、INPUTを含む選択肢は除外することができます。

あとは表2を確認し、A/D変換機に書き込むか、LEDに書き込むか考えれば答えはわかりますね。

解答

設問1 a: 「イ」 b: 「エ」c:「イ」
設問2 d: 「イ」 e: 「エ」