応用情報技術者試験 令和6年春 午前問22 解説付き過去問
問題
次の方式で画素にメモリを割り当てる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増やす。

正解
解説
この問題は、LCDモジュールにおける画素座標とメモリ番地の関係を把握し、特定の画素に対応するメモリアドレスの先頭を計算するものです。
※画素番号は1番目を0番地とするため、(n-1)×2 の式が成立します。
- 画素の位置と座標
問題文と図から、始点(5,4)~終点(9,8)を結ぶ直線上にある、x=7の画素の座標は(7,6)です。これは図の8列目7行目(※x=0から開始)に相当します。 - メモリ割り当てのルール
- 各画素には16ビット=2バイトが割り当てられる。
- メモリは座標(0,0)からスタートし、x方向(横方向)に進み、x=639の次は次のy行に移る。
- メモリは0番地から昇順で連続的に割り当てられる。 - 画素番号とアドレスの計算
1行に640個の画素があるので、座標(7,6)は次のように計算されます。
画素番号(1始まり)=6行目×640+(7+1)=3840+8=3848番目の画素
(※列番号も1始まりで考え、x=7 → 8番目)
アドレス(バイト単位)=(画素番号-1)×2 =(3848-1)×2=7694番地
※画素番号は1番目を0番地とするため、(n-1)×2 の式が成立します。