Option Explicit
Dim i As Integer
Dim data(1 To 1000, 0 To 1), f(1 To 1000), h(1 To 1000), t(1 To 1000), SumZ, SumZZ, SumX, SumXZ As DoublePrivate Sub Command3_Click()
Dim q, h2, pi, s, y2, x2, z2(1 To 1000), a2, b2 As Doubledata(1, 0) = 156: data(2, 0) = 187: data(3, 0) = 140: data(4, 0) = 39: data(5, 0) = 5300: data(6, 0) = 111: data(7, 0) = 311: data(8, 0) = 1140: data(9, 0) = 139: data(10, 0) = 52300
'data(1, 1) = 51: data(2, 1) = 15: data(3, 1) = 112: data(4, 1) = 231: data(5, 1) = -51300: data(6, 1) = 11121: data(7, 1) = 3311: data(8, 1) = 14140: data(9, 1) = 13429: data(10, 1) = 42300For i = 1 To 10
 
 f(i) = (i - 0.3) / (10 + 0.4)Next i
For i = 1 To 10
q = 0.0001
h2 = 0.0001
pi = 3.1415926
s = 0
y2 = 0
If f(i) < 0.5 Then
  x2 = y2 - h2
  Do While Abs(s - (0.5 - f(i))) > q
  s = s + (Exp(-(x2 ^ 2 / 2)) + Exp(-(y2 ^ 2 / 2))) * h2 / (2 * Sqr(2 * pi))
  y2 = x2
  x2 = y2 + h2
  Loop
  z2(i) = x2
  ElseIf f(i) > 0.5 Then
  x2 = y2 - h2
  Do While Abs(s - 0.5 - f(i)) > q
  s = s + (Exp(-(x2 ^ 2 / 2)) + Exp(-(y2 ^ 2 / 2))) * h2 / (2 * Sqr(2 * pi))
  y2 = x2
  x2 = y2 + h2
  Loop
  z2(i) = x2
  End If
  Next i
  
  For i = 1 To 10
  SumZ = 0
  SumZZ = 0
  SumX = 0
  SumXZ = 0
  SumZ = SumZ + z2(i)
  SumZZ = SumZZ + z2(i) ^ 2
  SumX = SumX + t(i)
  SumXZ = SumXZ + t(i) * z2(i)
  Next i
  
 b2 = (10 * SumXZ - SumZ * SumX) / (10 * SumZZ - SumZ ^ 2)
 a2 = (SumX - b2 * SumZ) / 10
 Print b2
 Print a2
End Sub
为什么我这段代码 一运行 机器就死掉了呢?

解决方案 »

  1.   


                    Do While Abs(s - (0.5 - f(i))) > q
                          s = s + (Exp(-(x2 ^ 2 / 2)) + Exp(-(y2 ^ 2 / 2))) * h2 / (2 * Sqr(2 * pi))
                          y2 = x2
                          x2 = y2 + h2
                    Loop是不是死循环我不太清楚,但就上面那一小段代码,没有一天半天的恐怕出不来