• 締切済み

n88basicのプログラムを十進ベーシックに翻訳してください。

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

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

#1です。空白がバラけて見づらいですね。すみません。 数値表示は、もしかしたら数値の右1バイトには空白が付与されたか?であれば桁数が短くなっても問題ありません。 なお、1000~0までカウントダウンしますが、表示される数値は999~0です。訂正。 十進Basicが何か、検索してみました。教育用なんですね。

myyacht
質問者

お礼

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

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

十進ベーシックがどんなものか分かりませんが、 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の表示の後に空白文字を表示するようにしましょう これだけの説明で自力で直せないのであれば諦めるしかないと思います また、問題の丸投げ(疑問点を示さず作業を依頼する行為)は禁止されています プログラムを直すのに分からないところを補足してみてください 十進ベーシックについて分かる片からアドバイスをもらえると思います

myyacht
質問者

お礼

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

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

十進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で表示される文字の桁が短くなる際に不都合があるように思いますね。

myyacht
質問者

お礼

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