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

クエスチョン マークは line1470: Q(Z) = KKです。Qプログラムの前半で yes/no 入力変数として定義さQ$れているため、float を入れても意味がありません。Q()先ほどのプログラムには関数が定義されておらず、GW-BASIC にも関数への参照が見つかりませんQ()

何か助けはありますか?

4

2 に答える 2

12

Q と Q$ は別の変数です。$ が付いているものはすべて文字列変数です。Q(Z) は数値の配列です。

Basic の以前のバージョンでは、変数名は最大 2 文字に制限されていたため、1 文字と 2 文字の名前が一般的です。

于 2013-01-24T16:33:18.323 に答える
4

XPDA が述べたように、$ の接尾辞が付いた変数名はすべて文字列です。私は数年前に GW-BASIC を書きましたが、ありがたいことに、コンパイラーに同梱されていた古いドキュメントがまだたくさん残っています。アーカイブした CHM のコピーをアップロードしました。おそらくそこに役立つ情報がいくつかあるでしょう。 http://www.mediafire.com/?3h9z133ok8wx1l9

于 2013-01-26T01:58:13.440 に答える