【问题标题】:Unknown GW-BASIC function/syntax: Q(var) = var未知的 GW-BASIC 函数/语法:Q(var) = var
【发布时间】:2013-01-08 11:49:02
【问题描述】:

我正在将一个过时的 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$ 是/否输入变量,所以我在其中放入浮点数是没有意义的。前面的程序中没有定义Q() 函数,我在GW-BASIC 中也找不到对Q() 函数的引用。

有什么帮助吗?

【问题讨论】:

  • +1 让我想起了 GW-BASIC,已经有好几年了
  • 我不得不说,这个特殊的项目对移植来说是一个爆炸。

标签: syntax basic gw-basic


【解决方案1】:

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

【讨论】:

  • 为什么几年前你必须编写 gwbasic,谁会想要一个用 gwbasic 编写的程序? ,我只是好奇:)
【解决方案2】:

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

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

【讨论】:

  • 据我所知,Q 在用于此特定循环之前从未定义过。这在 BASIC 中可能吗?感谢您提供 BASIC 的数组语法提示。
  • 我认为数组需要在 DIM 中声明,而不是标量变量。已经有一段时间了,我不太记得了。
  • 这并不是那么重要——更多的是不理解我正在处理一个数组。谢谢,我会在另外 6 分钟内给您答复。 :)
  • 嘿,“过旧”有含义! :-)
  • 我认为它在使用之前不必在语法上定义,只需在评估时刻。它可能被定义得更远,但运行时的代码在此之前执行(如 goto 回调或在子例程内)。有意义吗?
猜你喜欢
  • 1970-01-01
  • 2020-10-26
  • 2013-09-27
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多