令和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増やす。

出典:令和6年度 春期 応用情報技術者試験 午前 問22
- ア3847
- イ7680
- ウ7694
- エ8978
正解:ウ
解説
始点(5,4)から終点(9,8)への直線は,xが1増えるごとにyも1増える傾き1の直線(y=x−1)です。したがってx=7の画素はy=6,すなわち座標(7,6)になります。メモリは(0,0)から昇順に,x=0から640画素分(0〜639)を1行として16ビット(2バイト)ずつ割り当てるので,画素(7,6)より前に格納されている画素数は6行分(6×640画素)とその行内のx=0〜6の7画素,合計6×640+7=3847画素です。1画素2バイトなので,アドレスの先頭は3847×2=7694番地になります。
選択肢ごとの解説
- ア誤り。3847は,画素(7,6)までの画素数そのものです。1画素が16ビット(2バイト)であることを忘れて2倍しなかった場合の値です。
- イ誤り。7680は,y=6行の先頭(x=0の画素)のアドレス(6×640×2)です。x=7の分(7×2=14バイト)を加え忘れた場合の値です。
- ウ正しい。(6×640+7)×2=3847×2=7694番地が,座標(7,6)の画素の先頭アドレスです。
- エ誤り。8978は,座標(7,6)ではなく座標(9,7)として計算した場合の値((7×640+9)×2=8978)に一致し,x座標とy座標を取り違えた計算に相当します。