問2
次のプログラムの説明,擬似言語の記述形式の説明及びプログラムを読んで,設問に答えよ。
〔プログラムの説明〕
整数値を,指定された書式に従って 10 進の数字列に変換する副プログラムである。
(1) 副プログラム Format は,配列 Ctrl に格納されている書式文字に 従って,変数 Val に格納されている整数値を 10 進の数字列に変換し, 配列 Out に格納する。
Format の引数の仕様を表 1 に示す。
表1 引数の仕様
変数名
入力/出力
意味
入力
出力
要素数は配列 Ctrl と同じ
(2) 配列 Ctrl の各要素には,表 2 に示す書式文字だけが格納されている。 Format は,配列 Ctrl の最後の要素から最初に向かって,各書式文字の意味する 処理を行い,配列 Out の対応する位置に結果を格納する。
表2 書式文字の種類と意味
書式文字
“ # ”
“ , ”
“ ”
(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