12

我正在将一个过时的 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

问号是 line 1470: Q(Z) = KKQ在程序的前面被定义Q$为是/否输入变量,所以我在其中放入一个浮点数是没有意义的。之前的程序中没有Q()定义函数,我也找不到对Q()GW-BASIC 中函数的引用。

有什么帮助吗?

4

2 回答 2

12

Q 和 Q$ 是独立的变量。任何带有 $ 的东西都是字符串变量。Q(Z) 是一个数字数组。

1 和 2 个字符的名称很常见,因为在早期版本的 Basic 中,变量名称被限制为最多 2 个字符。

于 2013-01-24T16:33:18.323 回答
4

正如 XPDA 所提到的,任何以 $ 为后缀的变量名都是一个字符串。几年前我写了一些 GW-BASIC,谢天谢地,我还有很多与编译器一起打包的旧文档。我已经上传了我存档的 CHM 的副本,您可能会在其中找到一些有用的信息。 http://www.mediafire.com/?3h9z133ok8wx1l9

于 2013-01-26T01:58:13.440 回答