平成12年度 春期 第二種情報処理技術者 午後

問1 問2 問3 問4 問5 問6 問15 問16 模範解答例(若林研二氏) 

問2 画面の画素描画に関する次の記述を読んで,設問に答えよ。

 水平方向及び垂直方向がそれぞれ 128 画素からなる画面がある。水平方向を x 座標,垂直方向を y 座標とする。この画面の 1 画素の状態を 1 ビットで記憶する配列 MAP(添え字は 0 から始まる)がある。配列 MAP の各要素の大きさは 16 ビットであり,各ビットの値が 1 のときには対応する画素が点灯し,0 のときには消灯する。画面上の画素の座標と,配列 MAP の要素中のビット位置との関係を図に示す。
 
 

設問

 座標(x,y)が与えられたときに,対応する画素を点灯又は消灯するアルゴリズムを作成する。このアルゴリズムを説明した次の記述中の【   】に入れる正しい答えを,解答群の中から選べ。ここで,X,Y,N,V,Q,S,W は,すべて 16 ビットの符号なし整数とする。
 
 
(1) 座標(x,y)の画素に対応するビットが含まれる配列要素の番号 V を求める。
  1. x を X に代入し,y を Y に代入する。
  2. 画面の水平方向 1 行に対応する配列要素の個数を N とする。Y を N 倍するため,Y を【 a 】だけ算術シフトした値を Y に代入する。
  3. X を【 b 】だけ算術シフトした値を S に代入する。
  4. Y + S を計算して V に代入する。
(2) 座標(x,y)の画素に対応する配列要素 MAP(V) の該当ビットだけが 1 となっているデータ Q を求める。このため,表に示す配列 BIT を参照する。
 
表 配列 BIT の内容
 
配列の要素
要素の値
BIT(0)
32768 
BIT(1)
16384 
BIT(2)
8192 
BIT(3)
4096 
BIT(4)
2048 
BIT(5)
1024 
BIT(6)
512 
BIT(7)
256 
配列の要素
要素の値
BIT(8)
128 
BIT(9)
64 
BIT(10)
32 
BIT(11)
16 
BIT(12)
BIT(13)
BIT(14)
BIT(15)

 Q を求める処理の手順は次のとおりである。

  1. X と 15 の【 c 】を求めて X に代入する。
  2. BIT(X) の値を Q に代入する。
(3) 配列 MAP の内容を変更して,座標(x,y)の画素を点灯又は消灯する。
  1. MAP(V) の値を W に代入する。
  2. 点灯する場合には,W と Q の【 d 】を求めて MAP(V) に代入する。
  3. 消灯する場合には,Q のすべてのビットを反転(0 と 1 を逆に)し,W と Q のビット単位の論理積を求めて MAP(V) に代入する。
a,b に関する解答群
 
 ア 左に 1 ビット イ 左に 2 ビット ウ 左に 3 ビット
 エ 左に 4 ビット オ 右に 1 ビット カ 右に 2 ビット
 キ 右に 3 ビット ク 右に 4 ビット  

c,d に関する解答群
 
 ア 2 の補数 イ ビット単位の排他的論理和
 ウ ビット単位の論理積 エ ビット単位の論理和
 オ ビットの反転 カ 加算結果
 キ 減算結果 ク 乗算結果

問3へ