3

QBasic で 2 つの異なるプログラムを作成しましたが、両方とも異なる .bas ファイルに保存されています。つまり、1 つは1.basで、もう1 つは2.basです。

プログラム2.basの実行中にプログラム1.basを閉じずに開く方法は?

プログラム 1 はしばらくプログラム 2 内で実行され、プログラム 2 が終了すると再びプログラム 2 に戻ります。それを行う方法はありますか?

QBasic および/または QB64 で機能する構文があるかどうかを知りたいです。

4

1 に答える 1

3

Qbasic では、CHAINコマンドを使用して別の .BAS ファイルに制御を渡すことができ、終了すると最初の .BAS ファイルに戻ります。と組み合わせてCOMMON、2 つのプログラム間で変数を共有することもできます。

使用することもできますRUNが、QBasic では変数を渡すことができません (よくわかりませんが、コントロールは返されないと思います)。QB64 では、次を使用して変数を渡すことができます。RUN

例として、標準の COM1_EX.BAS および COM2_EX.BAS を参照してください。COM1_EX.BAS の内容は次のとおりです。

' == COM1_EX.BAS - COMMON statement programming example ==
DIM Values(1 TO 50)
COMMON Values(), NumValues

PRINT "Enter values one per line. Type 'END' to quit."
NumValues = 0
DO
   INPUT "-> ", N$
   IF I >= 50 OR UCASE$(N$) = "END" THEN EXIT DO
   NumValues = NumValues + 1
   Values(NumValues) = VAL(N$)
LOOP
PRINT "Leaving COM1_EX.BAS to chain to COM2_EX.BAS"
PRINT "Press any key to chain... "
DO WHILE INKEY$ = ""
LOOP

CHAIN "com2_ex"

COM2_EX.BAS の内容:

' == COM2_EX.BAS - COMMON statement programming example ==
' Notice that the variables Values() and NumValues from COM1_EX
' will be called X() and N here in COM2_EX
DIM X(1 TO 50)
COMMON X(), N

PRINT
PRINT "Now executing file com2_ex.bas, reached through a CHAIN command"
IF N > 0 THEN
   Sum = 0
   FOR I = 1 TO N
      Sum = Sum + X(I)
   NEXT I
   PRINT "The average of the values is"; Sum / N
END IF
于 2016-06-21T15:29:31.470 に答える