Подтвердить что ты не робот

Неизвестная функция/синтаксис GW-BASIC: Q (var) = var

Я переводил чрезмерно старую GW-BASIC-программу в JavaScript, и я столкнулся с синтаксисом, который меня озадачил. Примечание (опять же): полностью не мой код, и имена переменных сумасшедшие, поэтому я портирую его в первую очередь.

1380 Z = 1
1390 RATIO = FCO2 /(1-FCO2-10^REFFO2)
1400 AA =(1 - 2*RATIO*(100 / MIXRATIO - 1))/(1 + 2*(100 / MIXRATIO - 1))
1410 PART = LOG(1 - AA)- LOG(100 / MIXRATIO - 1)
1420 FOR I = 1 TO - 1 STEP -2
1430 H = I
1440 W = T + H 
1450 GG = 62.110326# - .02144446#*W + 4.720326E-07*(W^ 2)+(- 4.5574288#)*(10^(- 12))*(W^ 3)- 7.343018200000001#*(10^(- 15))*(W^ 4) 
1460 KK = EXP(- GG /(R*(W + 273.18)))
1470 Q(Z)= KK 
1480 Z = Z + 1
1490 NEXT I
1500 NEWFO21 = LOG(10)*.5*(LOG(Q(1))+ PART):NEWFO22 = LOG(10)*.5*(LOG(Q(2))+ PART)
1510 DELEMFDELT =(FN EMF (TREF + 1,NEWFO21) - FN EMF (TREF - 1, NEWFO22))/2
1520 RETURN

Вопросительным знаком является строка 1470: Q(Z) = KK. Q определяется Q$ ранее в программе как входная переменная yes/no, поэтому для меня нет смысла помещать в нее float. Нет функции Q(), определенной ранее в программе, и я не могу найти ссылку на функцию Q() в GW-BASIC.

Любая помощь?

4b9b3361

Ответ 1

Q и Q $- отдельные переменные. Anything with $- строковая переменная. Q (Z) - массив чисел.

Имена символов 1 и 2 являются общими, поскольку в более ранних версиях Basic имена переменных были ограничены до 2 символов.

Ответ 2

Как упоминалось в XPDA, любое имя переменной, суффиксное с $, является строкой. Я написал несколько GW-BASIC несколько лет назад, и, к счастью, у меня все еще есть много старой документации, которая была упакована вместе с компилятором. Я загрузил копию CHM, которую я архивировал, вы, вероятно, найдете там полезную информацию об этом. http://www.mediafire.com/?3h9z133ok8wx1l9