問16 プログラム設計に関する次の記述を読んで,設問l〜3に答えよ。 図面検索プログラムを作成する。図面には,製品を表す全体図があり,更にその製品 を構成するユニットを表すユニット図,その下位のユニット図,…と続き,最下位には 個々の部品を表す部品図がある(図1)。検索は図面番号をキーとし,その下位の図面の 情報を得る(図2,図3)。 検索に用いるデータベースは,図面マスタファイル(図4)と図面構成マスタファイ ル(図5,図6)である。プログラムは,サブルーチンGETM及びGETNS(表1)と,内 部の表“結果格納表”(表2)及びスタックを用いる。 l. 処理の条件 (1) 個々の部品図やユニット図は,複数の製品に共通して用いられることも ある。 (2) 検索結果には,レベルが表示される。レベルは,キーとして指定された 図面を0とし,階層が下がるごとに1ずつ増える。 (3) 図面番号は,3けたの数字で表され,最小値は001である。
図1 図面の構成例([ ]内は図面番号)
図面番号 レベル   図面種       図面名称   

009        0      全体図       全体図1    
005        1      ユニット図   ユニット図1
002        2      部品図       部品図1    
003        2      部品図       部品図2    
007        1      部品図       部品図3    
図2 検索結果の例1 (入カキーが009のとき)
図面番号 レベル   図面種       図面名称   

005        0      ユニット図   ユニット図1
002        1      部品図       部品図1    
003        1      部品図       部品図2    
図3 検索結果の例2 (入カキーが005のとき)
2. 図面マスタフアイルの説明 (1) 図面固有の情報をもつ。
 図面番号  図面種   図面名称  図面承認日 
図4 図面マスタファイルのレコード様式
  3.  図面構成マスタファイルの説明

    (1)  図面番号と,下位の図面を表す子図面番号を項目としてもつ。

    (2)  図面番号を第lキー,子図面番号を第2キーとして昇順に整列されている。
 図面番号  子図面番号 
図5 図面構成マスタファイルのレコード様式

 図面番号   子図面番号 
005002
005003
009005
009007
図6 図面構成マスタファイルの例   (図1に対応するもの)

表1 サブルーチンの仕様
\GETMGETNS
機能図面マスタファイルを検索す る。 図面構成マスタファイルを検索する。
呼出し形式GETM(KEY,RDAR1,RDAT2) GETNS(KEY1,KEY2,RET1,RET2)
入力KEY:図面番号を指定する。 KEY1,KEY2:それぞれ図面番号,子図面番号を指定する。
出力RDAT1,RDAT2:それぞれに
図面種と図面名称を返す。
RET1,RET2:図面構成マスタファイル上で(KEY1, KEY2)に一致するレコードの直後のレコードの図 面番号をRET1,子図面番号をRET2に返す。一致 するレコードが存在しないときは,存在すべきレコ ード位置の直後のレコードの図面番号をRET1,子 図面番号をRET2に返す。直後のレコードが存在し ないときは,RET1,RET2それぞれに000を返す。
(略) 図6の図面構成マスタファイルに対して
 (KEY1,KEY2) = (005,002)のとき,
    (RET1,RET2) = (005,003)
 (KEY1,KEY2) = (005,003)のとき,
    (RET1,RET2) = (009,005)
 (KEY1,KEY2) = (005,000)のとき,
    (RET1,RET2) = (005,002)
 (KEY1,KEY2) = (009,007)のとき,
    (RET1,RET2) = (000,000)


表2  結果格納表

ここで,スタックへの格納はサブルーチンPUSH,取出しはサブルーチンPOPで行 う。PUSHは,PUSH(DATA1,DATA2)の形式で呼び出し,(DATA1,DATA2)の組をス タックに積む。POPは,POP(DATAl,DATA2)の形式で呼び出し,(DATA1,DATA2) の組をスタックから取り出す。 設問1 図面検索プログラムを,図7に示すモジュールに分割した。表3のモジュール 間インタフェースの[ ]に当てはまる正しい答えを,解答群の中から選ベ。
図7 モジュール分割 表3 モジュール間インタフェース
モジュール入カ出カ
入力データ読取り
----------
図面番号
図面検索図面番号 図面番号,図面種,[ a ],[ b ]
図面マスタファイル検索図面番号 図面種,[ a ]
図面構成マスタファイル検索図面番号,子図面番号 図面番号,子図面番号
検索結果表示図面番号,図面種,[ a ],[ b ]
----------
解答群

  ア  子図面番号       イ  図面承認日       ウ  図面番号

  エ  図面名称         オ  レベル
設問2 図面検索モジュールの流れ図の中の[ ]に入れる正しい答えを,解答 群の中から選べ。
図8 図面検索モジュール流れ図
cに関する解答群 ア KEY2 イ LEVEL ウ LEVEL - 1 エ LEVEL + 1 オ RET1 カ RET2
dに関する解答群 ア GETM(KEYl,RDATl,RDAT2) イ GETM(KEY2,RDATl,RDAT2) ウ GETNS(KEY1,KEY2,RET1,RET2) エ POP(KEY1,KEY2) オ PUSN(KEY1,KEY2)
設問3 次の記述は,図面検索プログラムを利用して,部品図の図面番号をキーとして 与え,その部品図の上位のユニット図や全体図を知るための修正方法を述べたも のである。記述中の[ ]に入れる正しい答えを,解答群の中から選ベ。 図面構成マスタファイルの図面番号と子図面番号を取り換えたファイルに対し, [ ]したものを新たに図面構成マスタファイルとして用いる。 解答群 ア 子図面番号を第lキー,図面番号を第2キーとして昇順に整列 イ 最後のレコードの直後に,レコード(999,999)を付加 ウ 図面番号を第lキー,子図面番号を第2キーとして昇順に整列 エ 先頭のレコードの直前に,レコード(00l,00l)を付加