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

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

A 回答 (4件)

#4さんに補足します。



1000 A$=INKEY$:IF A$="" THEN 1000
1010 A$=INKEY$:IF A$<>"" THEN 1010
1020 RETURN

こうしておかないと,1回キーを押したつもりでも,次々に表示されてしまいます。ポケコンの実行速度が遅ければ#4さんの式でも大丈夫ですけど。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/14 21:57

ポケコンによってはエラーがでるかもしれません。




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 ○○ の所に セミコロン
 ; を付けると、改行されずに表示させることが出来ます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/14 21:58

使用しているポケコンはなんでしょうか?



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行目辺りは正確じゃないかもしれません(^^ゞ
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/14 21:59

BASICの種類がわからんからどんな文が使えるかわからんけど、一行分の計算が終わる度にGOSUBして、飛び先サブルーチンでWHILE/WEND文を何かキーが押されるまでINKEY$=""回して、RETURNすれば?。


他に泥縄式でいいならIF/THENで何かキー入力がなければ自分自身の行に戻ってくるようにすれば。

この回答への補足

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

補足日時:2005/09/14 21:47
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/09/14 21:56

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