第2回の続きです。今回は問2の内容について記録します。
彼が思考に詰まった際、少し助言をすると 試行錯誤の末に正解にたどり着くので、とても嬉しそうでした。 私まで嬉しくなってきます。
ちなみになぜ平成29年春の問題なのかは、 初日に彼の持っているテキストを開いて、たまたま開いた午後問題のページだったからです。 深い意味はありません。
レクチャーを実施するに至った経緯は下記を参照ください。 www.it-enjoy.com
最初に話したこと
- A/D変換機等の特殊な用語が出てくるが落ち着いて読むべし
- 戸惑う用語が出てきた際、問題文や図表で概要は理解できると信じるべし
- システムの目的は何か?を考えるべし
H29春 午後 問2
設問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: 「エ」