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


問2

 次のプログラムの説明,擬似言語の記述形式の説明及びプログラムを読んで,設問に答えよ。

〔プログラムの説明〕

整数値を,指定された書式に従って 10 進の数字列に変換する副プログラムである。

(1) 副プログラム Format は,配列 Ctrl に格納されている書式文字に 従って,変数 Val に格納されている整数値を 10 進の数字列に変換し, 配列 Out に格納する。

Format の引数の仕様を表 1 に示す。

表1 引数の仕様

変数名

入力/出力

意味

Val

入力

変換対象の整数値
Ctrl[]

入力

書式文字が格納されている文字型の配列
Out[]

出力

変換結果を格納する文字型の配列

要素数は配列 Ctrl と同じ

(2) 配列 Ctrl の各要素には,表 2 に示す書式文字だけが格納されている。 Format は,配列 Ctrl の最後の要素から最初に向かって,各書式文字の意味する 処理を行い,配列 Out の対応する位置に結果を格納する。

表2 書式文字の種類と意味

書式文字

意味

“ # ”

10 進数字の 1 けた又は負符号を格納する。 ただし,整数値の変換が終わっている場合は,空白文字を格納する。

“ , ”

けた区切りのコンマ又は負符号を格納する。 ただし,整数値の変換が終わっている場合は,空白文字を格納する。

“ ”

空白文字を格納する。

(3) 変数 Val の整数値が正しく変換できない場合は,配列 Out の全要素に“*”を格納する。

(4) 配列 Ctrl には,少なくとも一つの“#”が含まれる。

例:

〔擬似言語の記述形式の説明〕

〔プログラム〕

設問 プログラム中の に入れる正しい答えを,解答群の中から選べ。

a に関する解答群

ア N ← M − (M * 10)        イ N ← M − (M / 10)

ウ N ← M − ((M * 10) / 10)    エ N ← M − ((M / 10) * 10)

b,c に関する解答群

ア Out[Loop1] ← Ctrl[Loop1]    イ Out[Loop1] ← Digit[N]

ウ Out[Loop1] ← " "        エ Out[Loop1] ← "-"

オ Out[Loop1] ← "0"        カ Out[Loop1] ← ","

d に関する解答群

ア M > 0            イ M > 0 and Sign = "-"

ウ M > 0 or Sign = "-"    エ M > 0 and Zero = false

オ M > 0 or Zero = false


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