2016-06-21 3 views
3

Я сделал две разные программы в QBasic, и они оба сохраняются в разных файлах .bas, то есть 1.bas, а другой 2.bas.QBasic: как запустить программу из другой программы?

Как открыть программу 1.bas в то время как я нахожусь в программе 2.bas, не закрывая его?

Программа 1 должна запускаться внутри программы 2 в течение некоторого времени, а когда она заканчивается, я снова должен быть в программе 2. Есть ли способ сделать это?

Я хотел бы знать, есть ли синтаксис для этого, который работает в QBasic и/или QB64.

+0

Это 2016. Люди все еще пишут код в qbasic? –

+0

Мы вынуждены использовать его на уровне школы –

+0

@trincot, что я также знаю, но отвечаю в соответствии с моим вопросом –

ответ

3

В Qbasic вы можете использовать команду CHAIN, чтобы передать управление другому файлу .BAS, и когда он будет завершен, он вернется в первый .BAS-файл. Вы можете комбинировать его с COMMON, чтобы также делиться переменными между двумя программами.

Вы также можете использовать 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 
+0

Большое спасибо. –

 Смежные вопросы

  • Нет связанных вопросов^_^