VB 编程P-R状态方程,出现“编译错误:要求常数表达式”,请教高手:

Private Sub Command1_Click()
Dim Te As Single, Pe As Single, P As Single, T As Single, w As Single, V As Single, Tr As Single, k As Single, a(T) As Single, b As Single
Const R = 82.06
Te = Val(Text1.Text)
Pe = Val(Text2.Text)
Text3.Text = R
P = Val(Text4.Text)
T = Val(Text5.Text)
w = Val(Text6.Text)
V = Val(Text7.Text)
b = 0.0778 * R * Te / Pe
k = 0.37464 + 1.54226 * w - 0.26992 * w ^ 2
Tr = T / Te
a(T) = (0.45727 * R ^ 2 * Te ^ 2 / Pe) * (1 + k * (1 - Tr ^ 0.5)) ^ 0.5
If P = R * T / (V - b) - a(T) / (V * (V + b) + b * (V - b)) Then
Print V
End If
Text7.Text = V
End Sub
急求VB编程方程式
PV3+(bP-RT)V2-(3b2P+2bRT-A)V-Pb3+RTb2-Ab=0

a(T) As Single

T必须为常数,而且必须写a(0 to 5)这样的格式

可以先:dim a() as Single, T as Single
在之后过程中 :redim a(0 to T) 或 ReDim Preserve a(0 to T)
前者之前的数据会被清除,后者则保留之前的数据,你这里两句话差别不大

而且你这里没有涉及到数组,如果是下标,变量是没法弄下标的,就算用“_”连接也不会随数值改变,而且输出时没有要求下标,直接用a就好了

如果一定要下标,可在输出时另行添加,比如:print "a(" & T &")=" & v
温馨提示:答案为网友推荐,仅供参考
相似回答