ファイル中のレコードを1レコードずつ印字するソフトウェアがある。このソフトウェアでは、明細行を印字する直前にマクロ記述を呼び出して実行する。次のマクロ記述を使って印字したものはどれか。ここで、ファイルの1レコードは1行の明細行(XXXX XXXX XXXXで表示)として印字される。
【マクロ仕様】
- マクロ記述は、記述した順番に従って実行される。
- マクロ記述の中に変数を定義できる。初期値は0である。変数は、すべての明細行を印字し終わるまで、その内容を保持する。
- マクロ記述の中で条件を指定できる。条件は“条件”欄に記述し、条件を満たした場合には、“動作”を実行する。“線引き”は、線(───で表示)を印字する。
【マクロ記述】
| 記述順 | 条件 | 動作 | コメント |
|---|---|---|---|
| 1 | i+1->i | 変数iに1を加える。 | |
| 2 | i=3 | 線引き | 変数iが3なら、線を引く。 |
| 3 | i=3 | 1->i | 変数iが3なら、iの値を1にする。 |
ア
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
イ
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
ウ
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
エ
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
XXXX XXXX XXXX
レコード1行目が印字される前に変数iは0から1になります。
XXXX XXXX XXXX
レコード2行目が印字される前に変数iは1から2になります。
XXXX XXXX XXXX
XXXX XXXX XXXX
レコード3行目が印字される前に変数iは2から3になり、かつ線が印字されます。その後変数iは3から1になります。
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
レコード4行目が印字される前に変数iは1から2になります。
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
XXXX XXXX XXXX
レコード5行目が印字される前に変数iは2から3になり、かつ線が印字されます。その後変数iは3から1になります。
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
XXXX XXXX XXXX
--------------
XXXX XXXX XXXX
以降も同様にレコード2行おきに線が引かれます。
解答は「イ」になります。
今日のような問題は実際に手を動かして紙に書きながら考えましょう。

