QBasic: как запустить программу из другой программы?

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

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

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

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

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

Я получаю ноль для средней суммы. Не передает значения массива

Раньше я успешно использовал команду Qbasic «Join» для своих длинных структурных программ, но она так и не вернулась к исходной программе. В структурном проектировании вы должны создать матрицу элементов, матрицу свойств, выполнить некоторые матричные умножения и матрицу нагрузки. Использование другой программы для инвертирования полученной матрицы. Команда "Цепочка" в любом базовом софте вообще не работает. Должна быть команда для запуска одной программы и перехода к выполнению другой программы и возврата созданных ею значений/текста. Так как у меня стоит Win 10, 64 бит и я не комп. эксперт,

Другие вопросы по тегам