分享

圆周率

 老顽童989 2019-02-13
 圆周率计算:
           这里是用VB-6语言编写的圆周率计算程序,运行速度很快。理论上可以精确到小数点后任意位。

程序代码如下:
(适当添加窗体设置,并将代码复制到VB-6运行窗口即可运行)

Private Sub Command1_Click()
 Dim D, E, K, X, X1, A(2, 20005), B(1, 20005) As Integer, I, M, N, Y, Z, P, Q As Long, PI As String
  Text1.SetFocus: N = Val(Text1.Text): X = 5: Z = 16: N = Abs(N) \ 1: N = -(100 * (N <= 100) + N * (N > 100))
  PI = "圆周率 兀 = 3.": Q = Timer: Text2.Text = "": N = N + 2
 For D = 1 To 2: For I = 0 To N: A(0, I) = 0: B(0, I) = 0: B(1, I) = 0: Next I
   X1 = X * X: M = 1: Y = N + Log(Z) / Log(10)
  For I = 1 To N: If ((2 * M - 1) * Log(X) + Log(2 * M - 1)) / Log(10) >= Y Then Exit For
     M = M + 1: Next I
  For I = 0 To N - 1: A(0, I) = Z \ X: B(0, I) = A(0, I): Z = (Z - X * A(0, I)) * 10 + A(0, I + 1)
   Next I:   A(0, I) = Z \ X: B(0, I) = A(0, I)
   For J = 2 To M: Z = A(0, 0): X = X1: E = 0
   For I = 0 To N - 1: A(E, I) = Z \ X:    Z = (Z - X * A(E, I)) * 10 + A(0, I + 1)
   Next I:  A(0, I) = Z \ X: Z = A(0, 0): X = 2 * J - 1: E = 1
   For I = 0 To N - 1: A(E, I) = Z \ X:    Z = (Z - X * A(E, I)) * 10 + A(0, I + 1)
   Next I:  A(E, I) = Z \ X: If J / 2 = J \ 2 Then K = 1 Else K = 0
   For I = N To 1 Step -1: B(K, I) = B(K, I) + A(1, I)
    If B(K, I) >= 10 Then B(K, I) = B(K, I) - 10: B(K, I - 1) = B(K, I - 1) + 1
   Next I, J:   B(K, I) = B(K, I) + A(1, I)
   For I = N To 1 Step -1
    If B(0, I) < B(1, I) Then B(0, I) = B(0, I) + 10: B(0, I - 1) = B(0, I - 1) - 1
      A(0, I) = B(0, I) - B(1, I): Next I
      If D = 1 Then For I = 0 To N: A(2, I) = A(0, I): Next I: X = 239: Z = 4
 Next D:   P = Timer
   For I = 0 To N: B(0, I) = A(2, I): B(1, I) = A(0, I): Next I
   For I = N To 1 Step -1
     If B(0, I) < B(1, I) Then B(0, I) = B(0, I) + 10: B(0, I - 1) = B(0, I - 1) - 1
    A(0, I) = B(0, I) - B(1, I): Next I
   For I = 1 To N: PI = PI + Right(Str(A(0, I)), 1)
   Next I:    Text3.Text = N - 2: Text4.Text = (P - Q) \ 1: Text1.Text = "": Text2.Text = PI
End Sub
Private Sub Command2_Click()
  End
End Sub

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多