プロが教えるわが家の防犯対策術!

n88basicの次のプログラムを十1進ベーシックではどうなるのか教えてください。
10 cls
20 p=1000
30 for n=1 to 1000:next n
40 p=p-1
50 if p=-1 then end
60 locate 10,10:print p
70 goto 30

A 回答 (3件)

十進Basicが何か知りませんが、まんま変換すると宿題丸投げの場合アウトなのでコメント付与だけ。



10 cls 画面初期化(CLearScreen 80×25文字ぐらいだったなぁ)
20 p=1000 pに1000を代入
30 for n=1 to 1000:next n    nを1000回数えることで時間稼ぎ
40 p=p-1 pにp-1を代入
50 if p=-1 then end pが-1であったら終了
60 locate 10,10:print p 画面位置指定(文字単位でxyともに10文字目)
70 goto 30           30に戻って繰り返し。

1000から0までカウントダウンする動作。
ただし行60で表示される文字の桁が短くなる際に不都合があるように思いますね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2008/05/13 07:49

#1です。

空白がバラけて見づらいですね。すみません。

数値表示は、もしかしたら数値の右1バイトには空白が付与されたか?であれば桁数が短くなっても問題ありません。
なお、1000~0までカウントダウンしますが、表示される数値は999~0です。訂正。

十進Basicが何か、検索してみました。教育用なんですね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2008/05/13 07:44

十進ベーシックがどんなものか分かりませんが、


N88BASICのコマンドの意味は理解されていますか?
理解できているのであれば、その処理の通りに書き直すだけです

10 cls
 画面をクリアして何も描かれていない状態にする
20 p=1000
 p定数を格納
30 for n=1 to 1000:next n
 次の処理を行うまでの空ループ(待ち時間:ウエイト)
 これがないと一瞬でプログラムが終了する
40 p=p-1
 pに格納された値から1引いてpに格納し直す
50 if p=-1 then end
 pが-1になったらプログラムを終了させる
60 locate 10,10:print p
 左から10個目、上から10個目を指定。そこにpの値を出力(書き出す)
70 goto 30
 30行へ処理を移す

1000から0までカウントダウンするプログラムのようですが
60行目の表示で桁数が変わったときの処理が無いため正しく表示されないですね
最後には "2000" → "1000" → "0000" とカウントが終了します
修正するなら60行目に画面をクリアする命令を加えるか、
pの表示の後に空白文字を表示するようにしましょう

これだけの説明で自力で直せないのであれば諦めるしかないと思います
また、問題の丸投げ(疑問点を示さず作業を依頼する行為)は禁止されています
プログラムを直すのに分からないところを補足してみてください
十進ベーシックについて分かる片からアドバイスをもらえると思います
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

お礼日時:2008/05/13 07:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!