問1 次の流れ図の説明及び流れ図を読んで,設問 1 〜 3 に答えよ。
〔流れ図の説明〕
ホテルにおける空き部屋を検索する処理の流れ図である。 この処理は,部屋の階級と利用者の人数を入力すると,利用可能な部屋数と 部屋番号を出力する。部屋の階級を問わないときは,階級の値を 0 にする。 流れ図で使用する主な変数を表 1 に示す。配列の添字 n がとる値の範囲は 1 〜 maxnであり,添字 m がとる値の範囲は 1 〜 Orm である。
表1 主な変数
−
空き
使用中
1 〜 3
0 〜 3
〔流れ図〕
設問1 次の説明文中の に入れる正しい答えを, 解答群の中から選べ。
部屋の状況が表 2 のとき,次の入力データで検索を実行すると Orm の値は ,Ormno(2) の値は となる。
Irank : 0 Iusrn : 4
表2 部屋の構成と状況
解答群
ア 1 イ 2 ウ 3 エ 4 オ 5
カ 101 キ 102 ク 201 ケ 202 コ 301
ア Iusrn → Ormp(Orm)
イ rct(Irank) → Ormp(n)
ウ rct(Irank) + Iusrn → Ormp(n)
エ rct(Irank) × Iusrn → Ormp(n)
オ rct(Irank) × Iusrn → Ormp(Orm)
カ rct(rank(n)) × Iusrn → Ormp(n)
キ rct(rank(n)) × Iusrn → Ormp(Orm)
ア n < maxn かつ Orm < rcmaxn
イ n < maxn かつ Orm ≧ rcmaxn
ウ n > maxn かつ Orm > rcmaxn
エ n < maxn 又は Orm > rcmaxn
オ n > maxn 又は Orm < rcmaxn
カ n > maxn 又は Orm ≧ rcmaxn
問2 画面の画素描画に関する次の記述を読んで,設問に答えよ。
水平方向及び垂直方向がそれぞれ 128 画素からなる画面がある。 水平方向を x 座標,垂直方向を y 座標とする。この画面の 1 画素の状態を 1 ビットで 記憶する配列 MAP(添字は 0 から始まる)がある。配列 MAP の各要素の大きさは 16 ビットであり,各ビットの値が 1 のときには対応する画素が点灯し, 0 のときには消灯する。画面上の画素の座標と, 配列 MAP の要素中のビット位置との関係を図に示す。
図 画素の座標と配列 MAP との対応
(1) 座標(x,y)の画素に対応するビットが含まれる配列要素の番号 V を求める。
x を X に代入し,y を Y に代入する。
画面の水平方向 1 行に 対応する配列要素の個数を N とする。Y を N 倍するため, Y を だけ算術シフトした値を Y に代入する。
X を だけ算術シフトした値を S に代入する。
Y+S を計算して V に代入する。
(2) 座標(x,y)の画素に対応する配列要素 MAP(V)の該当ビットだけが 1 となっているデータ Q を求める。このため,表に示す配列 BIT を参照する。
32768
128
16384
64
8192
32
4096
16
2048
8
1024
4
512
2
256
1
Q を求める処理の手順は,次のとおりである。
X と 15 の を求めて X に代入する。
BIT(X)の値を Q に代入する。
(3) 配列 MAP の内容を変更して,座標(x,y)の画素を点灯又は消灯する。
MAP(V)の値を W に代入する。
点灯する場合には,W と Q の を求めて MAP(V)に代入する。
消灯する場合には, Q のすべてのビットを反転(0 と 1 を逆に)し,W と Q のビット単位の 論理積を求めて MAP(V)に代入する。
a,b に関する解答群
ア 左に 1 ビット イ 左に 2 ビット ウ 左に 3 ビット
エ 左に 4 ビット オ 右に 1 ビット カ 右に 2 ビット
キ 右に 3 ビット ク 右に 4 ビット
c,d に関する解答群
ア 2 の補数 イ ビット単位の排他的論理和
ウ ビット単位の論理積 エ ビット単位の論理和
オ ビットの反転 カ 加算結果
キ 減算結果 ク 乗算結果