|
代碼如下﹕另存為窗口﹐先申明不是我寫的
VERSION 5.00 Begin VB.Form Form1 BackColor = &H80000016& BorderStyle = 1 ''''Fixed Single Caption = "Pi Calculator" ClientHeight = 5580 ClientLeft = 45 ClientTop = 330 ClientWidth = 7320 Icon = "Pi.frx":0000 LinkTopic = "Form1" MaxButton = 0 ''''False MinButton = 0 ''''False MouseIcon = "Pi.frx":030A MousePointer = 99 ''''Custom ScaleHeight = 5580 ScaleWidth = 7320 StartUpPosition = 2 ''''CenterScreen Begin VB.TextBox OutputBox BeginProperty Font Name = "MS Sans Serif" Size = 13.5 Charset = 0 Weight = 700 Underline = 0 ''''False Italic = 0 ''''False Strikethrough = 0 ''''False EndProperty ForeColor = &H0000FF00& Height = 1575 Left = 0 MultiLine = -1 ''''True ScrollBars = 2 ''''Vertical TabIndex = 2 Top = 675 Width = 7335 End Begin VB.TextBox TextBox_LengthOfNumbers BackColor = &H80000014& BeginProperty Font Name = "Times New Roman" Size = 18 Charset = 0 Weight = 400 Underline = 0 ''''False Italic = 0 ''''False Strikethrough = 0 ''''False EndProperty ForeColor = &H0000FF00& Height = 480 Left = 45 TabIndex = 1 Text = "10" Top = 45 Width = 4335 End Begin VB.CommandButton CalculateButton Caption = "Pi !" BeginProperty Font Name = "Times New Roman" Size = 26.25 Charset = 0 Weight = 700 Underline = 0 ''''False Italic = 0 ''''False Strikethrough = 0 ''''False EndProperty Height = 630 Left = 45 TabIndex = 0 Top = 4905 Width = 1785 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Dim CalculatingPi As Integer
Sub CalculateButton_Click()
If CalculatingPi = False Then CalculatePi Else End End If
End Sub
Sub CalculatePi() Dim TimeSpent As Double TimeSpent = Timer OutputBox = "Initializing": DoEvents CalculatingPi = True CalculateButton.Caption = "Stop!"
Dim X As Integer Dim CarryPosition As Integer Dim NumberOfLoops As Integer Dim LengthOfNumbers As Integer
LengthOfNumbers = TextBox_LengthOfNumbers + 3
NumberOfLoops = Int(2 / 3 * LengthOfNumbers) ReDim ArcTangent5(1 To LengthOfNumbers) As String * 1 ReDim ArcTangent239(1 To LengthOfNumbers) As String * 1
ReDim MultipliedArcTangent5(1 To LengthOfNumbers + 1) As String * 1 ReDim MultipliedArcTangent239(1 To LengthOfNumbers + 1) As String * 1
OutputBox = "Calculating ArcTangent of 1/5": DoEvents FindArcTangent 5, NumberOfLoops, LengthOfNumbers, ArcTangent5() OutputBox = "Calculating the ArcTangent of 1/239": DoEvents FindArcTangent 239, NumberOfLoops, LengthOfNumbers, ArcTangent239() OutputBox = "Multiplying ArcTan of 1/5 by 16": DoEvents MultiplyArray ArcTangent5(), 16, MultipliedArcTangent5()
OutputBox = "Multiplying ArcTan of 1/239 by 4": DoEvents MultiplyArray ArcTangent239(), 4, MultipliedArcTangent239()
OutputBox = "Subtracting the Multiplied Arctangents": DoEvents For X = LengthOfNumbers To 1 Step -1
If MultipliedArcTangent5(X) < MultipliedArcTangent239(X) Then CarryPosition = X - 1 Do Until MultipliedArcTangent5(CarryPosition) <> "0"
MultipliedArcTangent5(CarryPosition) = "9" CarryPosition = CarryPosition - 1 Loop MultipliedArcTangent5(CarryPosition) = CStr(CInt(MultipliedArcTangent5(CarryPosition)) - 1)
MultipliedArcTangent5(X) = CStr((CInt(MultipliedArcTangent5(X)) + 10) - CInt(MultipliedArcTangent239(X))) Else MultipliedArcTangent5(X) = CStr(CInt(MultipliedArcTangent5(X)) - CInt(MultipliedArcTangent239(X))) End If
DoEvents Next X
Dim PiValue As String
OutputBox = "" For X = 1 To LengthOfNumbers - 3 PiValue = PiValue & MultipliedArcTangent5(X) If X Mod 5 = 0 Then PiValue = PiValue & " " End If Next X
OutputBox = PiValue MsgBox "Pi calculated to " & LengthOfNumbers - 3 & " decimal places." & Chr$(13) & "Completed " & NumberOfLoops & " iterations." & Chr$(13) & "Spent " & (Timer - TimeSpent) / 60 & " minutes calculating.", 64, "Calculations Complete" CalculatingPi = False End Sub
Sub FindArcTangent(ArcTanToFind As Integer, NumberOfLoops As Integer, LengthOfNumbers As Integer, ArcTangent() As String * 1) Dim StartPos As Integer Dim Sum As Long Dim X As Integer Dim Divisor As Long Dim Remainder As Long D[1] [2] 下一页 |