Я создал две разные программы в QBasic, и обе они сохранены в разных файлах .bas, то есть одна — 1.bas , а другая — 2.bas .
Как открыть программу 1.bas , пока я нахожусь в программе 2.bas , не закрывая ее?
Программа 1 должна какое-то время выполняться внутри программы 2, а когда она закончится, я снова должен оказаться в программе 2. Есть ли способ сделать это?
Я хотел бы знать, есть ли для этого синтаксис, который работает в QBasic и/или QB64.
В Qbasic вы можете использовать команду CHAIN
для передачи управления в другой файл .BAS, и по завершении он вернется к первому файлу .BAS. Вы можете комбинировать его с COMMON
, чтобы также совместно использовать переменные между двумя программами.
Вы также можете использовать RUN
, но в QBasic вы не можете передавать переменные (не уверен, но я думаю, что управление не вернется). А в QB64 можно передавать переменные с помощью RUN
См. Стандартные COM1_EX.BAS и COM2_EX.BAS как пример, содержимое COM1_EX.BAS:
'== COM1_EX.BAS - пример программирования ОБЩЕГО оператора == DIM Values (от 1 до 50) COMMON Values (), NumValuesPRINT "Enter значения по одному в строке. Введите 'END' для выхода. "NumValues = 0DO INPUT" -> ", N $ IF I> = 50 OR UCASE $ (N $) =" END "ЗАТЕМ ВЫХОД DO NumValues = NumValues + 1 Values ( NumValues) = VAL (N $) LOOPPRINT "Выход из COM1_EX.BAS в цепочку к COM2_EX.BAS" PRINT "Нажмите любую клавишу для цепочки ..." DO WHILE INKEY $ = "" LOOPCHAIN "com2_ex"
содержимое COM2_EX.BAS:
'== COM2_EX.BAS - пример программирования общего оператора ==' Обратите внимание, что переменные Values () и NumValues из COM1_EX 'будет вызываться X () и N здесь, в COM2_EXDIM X (от 1 до 50) COMMON X (), NPRINTPRINT "Теперь выполняется файл com2_ex.bas, полученный с помощью команды CHAIN" ЕСЛИ N> 0 ТОГДА Sum = 0 ДЛЯ I = 1 ДО N Сумма = Сумма + X (I) СЛЕДУЮЩИЙ I ПРИН T «Среднее значение»; Сумма/NEND ЕСЛИ