平成30年度秋期 応用情報技術者試験 午前 問20
次の方式で画素にメモリを割り当てる640×480のグラフィックLCDモジュールがある。座標(x, y)で始点(5, 4)から終点(9, 8)まで直線を描画するとき,直線上のx=7の画素に割り当てられたメモリのアドレスの先頭は何番地か。 〔方式〕 ・メモリは0番地から昇順に使用する。 ・1画素は16ビットとする。 ・座標(0, 0)から座標(639, 479)まで連続して割り当てる。 ・各画素は,x=0からx軸の方向にメモリを割り当てていく。 ・x=639の次はx=0とし,yを1増やす。

- ア 3847番地
- イ 7680番地
- ウ 7694番地
- エ 8978番地
解答・解説を見る
正解:ウ
AI解説
正解はウ。始点(5,4)から終点(9,8)への直線は傾き1(x−1=yの関係、y=x−1)なので、x=7のときy=6である。アドレスは行優先で(y×640+x)×2バイト(1画素16ビット=2バイト)だから、(6×640+7)×2=3847×2=7694番地となる。 ア: 3847は画素番号(6×640+7)そのものであり、1画素2バイトを掛け忘れた値である。 イ: 7680は(6×640)×2で、x座標の7を加え忘れた値(行頭のアドレス)である。 ウ: 正しい。y=6行目のx=7の画素は先頭から3847画素目で、2バイト/画素より7694番地から始まる。 エ: 8978は座標の取り違え(例えばy=7として(7×640+9)×2=8978)による誤りである。 💡 ビットマップのアドレス計算は「(y×横幅+x)×1画素のバイト数」が公式。直線問題ではまず両端から式を立てて指定xに対応するyを求めることが先決である。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。