回 帖 发 新 帖 刷新版面

主题:急~!!!!如何显示多次运算的结果

我编写的一段程序,代码如下

Private Sub Command2_Click()

       For i = 10 To Val(Text12) Step Val(Text13)
           For j = 0 To Val(Text14) Step Val(Text15)
               If Val(Text8) + Val(j) >= 0 And Val(Text8) + Val(j) <= Val(Text7) Then
                  If Val(Text8) = 0 Then Text16 = Format(Val(Text1) + Val(Text2) * Val(Text6) / (Val(Text3) * ((3.1415926535897 * Val(Text4) * Val(i) * Val(Text5)) ^ 0.5)) * (Exp(-(Val(Text5) * Val(j) ^ 2 / 4 / Val(Text4) / Val(i))) + Exp(-(Val(Text5) * (Val(Text7) * 2 - Val(j)) ^ 2 / 4 / Val(Text4) / Val(i)))), "0.0000")
                  If Val(Text8) > 0 Then Text16 = Format(Val(Text1) + 0.5 * Val(Text2) * Val(Text6) / (Val(Text3) * ((3.1415926535897 * Val(Text4) * Val(i) * Val(Text5)) ^ 0.5)) * (Exp(-(Val(Text5) * Val(j) ^ 2 / 4 / Val(Text4) / Val(i))) + Exp(-(Val(Text5) * (Val(j) + Val(Text8) * 2) ^ 2 / 4 / Val(Text4) / Val(i))) + Exp(-(Val(Text5) * (Val(Text7) * 2 - 2 * Val(Text8) - Val(j)) ^ 2 / 4 / Val(Text4) / Val(i)))), "0.0000")
               Else: MsgBox "a+y的范围应在[0,B]中"
               End If
              Text17 = "X=" & i & ", " & "Y=" & j & ", " & "C=" & Text16 & vbCrLf
           Next j
       Next i

为了实现在文本中显示买一次的运算结果
但是结果只出现了最后一次的,即
  X=2910, Y=100, C=4.1422
请问如何才能显示每一次的啊?
  如,x=10,y=0,c=??
      x=110,y=10,c=??
      ……
      x=2910,y=100,c=4.1422

请朋友们指点一下,谢谢了。急用的

回复列表 (共3个回复)

沙发

在给TextBox赋值后使用DoEvents,这样就可以看到中间计算结果在TextBox里刷啦啦地闪过...[em1]
如:
Text16.Text= .....
DoEvents

板凳

1、想要那样的结果可以:
text17=text17 & vbcrlf & ………………
的样式,不然你总是下一次覆盖了上一次,而不是追加

2、你的代码不完整,当text8+j>0且text8<0时,没有对应的处理。应该:
if val(text8)>0 then
……
elseif val(text8)=0 then
……
elseif val(text8)+j<0
……
else
……
endif

3、text8+j<0时,你的报错方式不当,当有很多小于零的数据时,不断需要人工干预。你应该和其他一样向text16输出信息。

4、你的两种情况下向text16输出信息的字符串大同小异,所以要善于合并相同的代码,使程序易读、易维护。

5、你把那些临时信息放进text16是没有意义的,可以讲text16用字符串代替。

6、二次方,尽量使用自乘、0.5次方尽量使用sqr函数。可以提高运算效率。

7、i、j本身就是数值型变量,没有必要使用val函数。

8、一些与j无关的运算可以放到第一层循环内,与i、j都无关的可以放到整个循环外。无非就是多几个中间变量。

3 楼

不错,太好好

我来回复

您尚未登录,请登录后再回复。点此登录或注册