- ベストアンサー
CASLIIの問題:要点解説と回答方法
- CASLIIの問題で解き方と回答を教えてください。
- 入力された整数を辺の長さとする正方形を文字*で出力する方法を教えてください。
- CASLIIの問題で求められている答えを教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
もう少し精細な仕様が無いとコードから推測するしかないが、 入力する整数は最初の一文字分だけが有効で9までのサイズの正方形を表示するということでいい? 0が先頭文字なら何も出力しない。 投稿時の空白文字制限で空白が一文字になってしまっているが、 ラベルLN2の文字定数は*の後に8個のスペースがあったと推測。 おおまかに動作を説明すると、 最初と最後の行はLN1のデータをサイズ分まで表示し、 途中の行は右辺の*をLN2の適切な位置に書き込んでからその位置まで表示する。 面倒なのでインデントのための空白やLN2の内容はそのまま削られるに任せる。 穴埋め問題なので分からなくはないと思う。 REP3 START IN REC,LEN LD GR1,REC AND GR1,MSK ; (a) ST GR1,LEN ; (b) LAD GR1,-1,GR1 ST GR1,POS OUT LN1,LEN LOOP LAD GR1,-1,GR1 ; (c) CPA GR1,=0 JMI FIN ; (d) CPA GR1,=1 JMI SKIP LD GR0,LN2 LD GR2,POS ST GR0,LN2,GR2 ; (e) OUT LN2,LEN JUMP LOOP SKIP OUT LN1,LEN FIN RET REC DS 256 LEN DS 1 POS DS 1 MSK DC #000F LN1 DC '*********' ; (f) LN2 DC '* ' END
その他の回答 (1)
- trapezium
- ベストアンサー率62% (276/442)
> LD GR1,REC LD GR1, LEN じゃない? これだけじゃなんなので > MSK DC #000F > LN1 DC (f) > LN2 DC '* ' と > (a) GR1,MSK > ST (b) をみるに、15 文字を上限としてるようです。 (a): AND, (b): GR1, LEN > LOOP LAD (c) > CPA GR1,=0 > (d) FIN (c) はループカウンタ減算、(d) は条件JUMPのどれか。 > LD GR0,LN2 > LD GR2,POS > ST (e) (e) は右側の '*'、GR2 でインデックスして GR0 を書き込む
お礼
> LD GR1,REC はこのままで大丈夫でした。 文字数として入力される整数は1以上9以下ということでした。 詳しく書かなくてすみません。 ありがとうございました。
お礼
長い穴埋め問題になると、途端にわからなくなってしまいます・・・。 これからじっくり見て、確認していきます。 有難うございました。