IPA過去問ドリル

令和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の図

出典:令和6年度 春期 応用情報技術者試験 午前 問22

正解:ウ

解説

始点(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座標を取り違えた計算に相当します。
応用情報技術者の過去問を演習モードで解く