東京理科大学 infoserv[更新日]2000.5.1


  次の問1,問2は必須問題です。全問解答してください。  

問1 次の流れ図の説明及び流れ図を読んで,設問 1 〜 3 に答えよ。

〔流れ図の説明〕

ホテルにおける空き部屋を検索する処理の流れ図である。 この処理は,部屋の階級と利用者の人数を入力すると,利用可能な部屋数と 部屋番号を出力する。部屋の階級を問わないときは,階級の値を 0 にする。 流れ図で使用する主な変数を表 1 に示す。配列の添字 n がとる値の範囲は 1 〜 maxnであり,添字 m がとる値の範囲は 1 〜 Orm である。

表1 主な変数
  変数名    内容     値の範囲 
 maxn  部屋数

 no(n)  部屋番号

 umaxn(n)  部屋の最大利用可能人数 

 status(n)  部屋の状態

空き

使用中

 rank(n)  部屋の階級

1 〜 3

 Irank  検索する部屋の階級

0 〜 3

 Iusrn  検索する部屋の利用人数

 Orm  利用可能な部屋数

 Ormno(m)  利用可能な部屋番号

〔流れ図〕

設問1 次の説明文中の に入れる正しい答えを, 解答群の中から選べ。

部屋の状況が表 2 のとき,次の入力データで検索を実行すると Orm の値は
,Ormno(2) の値は となる。

Irank : 0    Iusrn : 4

表2 部屋の構成と状況

 n    no    umaxn   status   rank 
11014空き3
21024使用中3
32013空き2
42024使用中2
53016空き1

解答群

ア 1     イ 2     ウ 3     エ 4     オ 5

カ 101    キ 102    ク 201    ケ 202    コ 301


設問2  人数分の宿泊料金を部屋ごとに計算して配列 Ormp に 格納する処理を追加する。流れ図のβで示す箱の最後に追加する正しい答えを, 解答群の中から選べ。ここで,各部屋の階級に対する 1 人当たりの料金(表 3 )は 配列 rct に格納されている。配列 rct の添字は 1 から始まり,階級を示す。

表3 料金表(rct)
 階級   料金(円/人) 
120,000
210,000
3 8,000

解答群

ア 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)


設問3   検索結果の出力件数を制限するために,出力件数の最大値を 与える変数 rcmaxn を追加する。流れ図のαで示す箱の条件をどのように 変更すればよいか。
正しい答えを,解答群の中から選べ。

解答群

ア 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 との対応

設問   座標(x,y)が与えられたときに,対応する画素を点灯又は 消灯するアルゴリズムを作成する。このアルゴリズムを説明した次の記述中の に入れる正しい答えを, 解答群の中から選べ。ここで,X,Y,N,V,Q,S,W は, すべて 16 ビットの符号なし整数とする。

 

(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 を参照する。

表 配列 BIT の内容
配列の要素 要素の値 配列の要素 要素の値
BIT(0)

32768

BIT(8)

128

BIT(1)

16384

BIT(9)

64

BIT(2)

8192

BIT(10)

32

BIT(3)

4096

BIT(11)

16

BIT(4)

2048

BIT(12)

8

BIT(5)

1024

BIT(13)

4

BIT(6)

512

BIT(14)

2

BIT(7)

256

BIT(15)

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 の補数        イ ビット単位の排他的論理和

ウ ビット単位の論理積   エ ビット単位の論理和

オ ビットの反転      カ 加算結果

キ 減算結果        ク 乗算結果

 


東京理科大学 infoserv 戻る 次頁:問03〜06