• ベストアンサー

ポケコンのBASICプログラムについて

ポケコンのBASICのプログラムでPRINTした時、PRINTの行が多くて最初に出てきた行の文字が消えてしまいます。下のような状態です。 1+1=2 2+2=4 3+3=6 4+4=8 5+5=10 このようにPRINTされると最初の1+1=2の行が消えてしまい困っています。リターンキー、またはどこかキーを押すと次の行が表示されるプログラムをぜひ教えて下さい。よろしくお願いします。簡単なプログラムの例をのせて教えてもらえるとうれしいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • tokpy
  • ベストアンサー率47% (1313/2783)
回答No.4

#4さんに補足します。 1000 A$=INKEY$:IF A$="" THEN 1000 1010 A$=INKEY$:IF A$<>"" THEN 1010 1020 RETURN こうしておかないと,1回キーを押したつもりでも,次々に表示されてしまいます。ポケコンの実行速度が遅ければ#4さんの式でも大丈夫ですけど。

makr
質問者

お礼

ありがとうございました。補足のおかげでうまくいきました。助かりました。

その他の回答 (3)

  • poppoyan
  • ベストアンサー率32% (58/177)
回答No.3

ポケコンによってはエラーがでるかもしれません。 1000 a$=inkey$:if a$="" then 1000 これでキー入力があるまで、ループします。 キーを押すごとに一度表示させて停止させるには、この部分をサブルーチンにして 表示を止めたいところへ、gosub 1000というのを入れれば良いでしょう。 (サブルーチンにするには、1000行の最後に :return と追加します) 例 10 print "1+1=2" 20 print "2+2=4" 30 print "3+3=6" 40 print "4+4=8" 50 gosub 1000 60 print "5+5=10" 70 print "6+6=12" 80 gosub 1000 90 print "10+10=20" 100 end 1000 a$=inkey$:if a$="" then 1000:return この例では、4+4の所と6+6の所でキー入力があるまで待ちます。 またちょっと別な方法では、表示させる部分の print ○○ の所に セミコロン  ; を付けると、改行されずに表示させることが出来ます。

makr
質問者

お礼

ありがとうございました。

  • nnfuji
  • ベストアンサー率28% (200/701)
回答No.2

使用しているポケコンはなんでしょうか? SHARPのPC-1210やPC-1350を使っていました。 したがってSHARPのポケコン用BASICを前提に話をします。 表示可能な行数が5行の場合 100 L = 1 110 FOR I=1 TO 100 120 PRINT I;"+";I;"=";I+I; 130 L = L + 1 140 IF L MOD 4 = 0 THEN A$=INPUT$(1):PRINT ELSE PRINT 150 NEXT I とすれば、4行表示する度に何かキーが押されるまで表示を一時停止します。 110行目から始まるループは目的に合わせて改編してください。 この通りであるなら変数 L を I に置き換えても問題ありません。 20年近く昔の記憶なので 120行目、140行目辺りは正確じゃないかもしれません(^^ゞ

makr
質問者

お礼

ありがとうございました。

回答No.1

BASICの種類がわからんからどんな文が使えるかわからんけど、一行分の計算が終わる度にGOSUBして、飛び先サブルーチンでWHILE/WEND文を何かキーが押されるまでINKEY$=""回して、RETURNすれば?。 他に泥縄式でいいならIF/THENで何かキー入力がなければ自分自身の行に戻ってくるようにすれば。

makr
質問者

お礼

すみません。どうにかわかりました。ありがとうございました。

makr
質問者

補足

私が使ってるポケコンはSHARPのPC-G830というものなんですがもう少し詳しく教えていただいてもよろしいですか?すみません。泥縄式でもいいですので。

関連するQ&A