令和4年度 春期 午前 問21
コンピュータ構成要素
メモリのアドレスの先頭
次の方式で画素にメモリを割り当てる 640×480 のグラフィック LCD モジュールがある。始点(5,4)から終点(9,8)まで直線を描画するとき,直線上の x=7 の画素に割り当てられたメモリのアドレスの先頭は何番地か。ここで,画素の座標は(x,y)で表すものとする。
〔方式〕
・メモリは 0 番地から昇順に使用する。 ・1 画素は 16 ビットとする。 ・座標(0,0)から座標(639,479)までメモリを連続して割り当てる。 ・各画素は,x=0 から x 軸の方向にメモリを割り当てていく。 ・x=639 の次は x=0 とし,y を 1 増やす。
メモリ x
┌─────────┐ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 … 639
│ 0番地 │┐ y 0 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
│ 1番地 │┴→ 座標(0,0)の画素
│ 2番地 │┐ 1 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
│ 3番地 │┴→ 座標(1,0)の画素
│ ⋮ │ 2 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
│ ⋮ │ 3 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
│ z番地 │ 4 ○ ○ ○ ○ ○ ● ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ← 始点
└─────────┘ 5 ○ ○ ○ ○ ○ ○ ● ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
←─ 8ビット ─→ 6 ○ ○ ○ ○ ○ ○ ○ ● ○ ○ ○ ○ ○ ○ ○ ○ ○
7 ○ ○ ○ ○ ○ ○ ○ ○ ● ○ ○ ○ ○ ○ ○ ○ ○
8 ○ ○ ○ ○ ○ ○ ○ ○ ○ ● ○ ○ ○ ○ ○ ○ ○ ← 終点
9 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
⋮
479 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○- ア3847
- イ7680
- ウ7694
- エ8978
答えと解説を見る
✓ これが正解ウ7694
解説
行の位置を数え、二番地ずつ掛けます。
設問は、横640・縦480の画面で、始点と終点を結ぶ直線のうち横の位置が7になる画素について、割り当てられたメモリの先頭の番地を求めさせています。ですから見分けの軸は、画素の並びの通し番号を出す段と、その通し番号を番地に直す段の二段を、両方とも踏めたか、という一点だけです。始点も終点も縦横がともに4ずつ離れているので、横が5から9へ進む間に縦は4から8へ進み、横が7のときの縦は6と決まります。割り当ての方式は横一列に640ずつ詰めていくので、この画素は先頭から6×640+7で3847番目です。1画素は16ビットで、メモリの幅は8ビットですから、1画素あたり二つの番地を使います。したがって求める先頭の番地は3847×2で7694となります。
ほかの選択肢はなぜ違うのか
- ア3847:3847は、並び順の番号を出した時点で計算をやめた値です。一つの点が二つの番地を占めるぶんを掛けていないため、答えの半分の大きさにとどまっています。
- イ7680:7680は、6×640×2として縦の行のぶんだけを数えた値です。同じ行の中で右へ7つ進んだぶんを足していないので、その行の先頭を答えたことになります。
- エ8978:8978は、二で割ると4489となり、これは7×640+9に当たります。縦を7、横を9として数えた場合に出てくる値で、直線上のどの点かを取り違えています。
出典:令和4年度 春期 応用情報技術者試験 午前 問21
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)