home *** CD-ROM | disk | FTP | other *** search
/ Hot Shareware 35 / hot35.iso / ficheros / LVB / T2W32543.ZIP / _MATH.FRM < prev    next >
Text File  |  1998-05-21  |  13KB  |  522 lines

  1. VERSION 5.00
  2. Begin VB.Form frmMath 
  3.    BorderStyle     =   4  'Fixed ToolWindow
  4.    Caption         =   "Math"
  5.    ClientHeight    =   4785
  6.    ClientLeft      =   1890
  7.    ClientTop       =   3270
  8.    ClientWidth     =   7485
  9.    MaxButton       =   0   'False
  10.    MDIChild        =   -1  'True
  11.    PaletteMode     =   1  'UseZOrder
  12.    ScaleHeight     =   4785
  13.    ScaleWidth      =   7485
  14.    ShowInTaskbar   =   0   'False
  15.    Begin VB.Frame Frame1 
  16.       Height          =   570
  17.       Left            =   0
  18.       TabIndex        =   1
  19.       Top             =   -90
  20.       Width           =   7485
  21.       Begin VB.CommandButton cmdNP 
  22.          Caption         =   ">"
  23.          Height          =   285
  24.          Index           =   1
  25.          Left            =   7110
  26.          TabIndex        =   6
  27.          Top             =   195
  28.          Width           =   285
  29.       End
  30.       Begin VB.CommandButton cmdNP 
  31.          Caption         =   "<"
  32.          Height          =   285
  33.          Index           =   0
  34.          Left            =   6210
  35.          TabIndex        =   5
  36.          Top             =   195
  37.          Width           =   285
  38.       End
  39.       Begin VB.CommandButton Command1 
  40.          Caption         =   "&Go"
  41.          Default         =   -1  'True
  42.          Height          =   285
  43.          Left            =   6570
  44.          TabIndex        =   4
  45.          Top             =   195
  46.          Width           =   465
  47.       End
  48.       Begin VB.ComboBox cmb_Function 
  49.          Height          =   315
  50.          Left            =   1365
  51.          TabIndex        =   2
  52.          Top             =   180
  53.          Width           =   4755
  54.       End
  55.       Begin VB.Label Label2 
  56.          Caption         =   "&Select a function"
  57.          Height          =   255
  58.          Left            =   90
  59.          TabIndex        =   3
  60.          Top             =   210
  61.          Width           =   1275
  62.       End
  63.    End
  64.    Begin VB.TextBox txt_Result 
  65.       BackColor       =   &H00C0C0C0&
  66.       BorderStyle     =   0  'None
  67.       Height          =   4005
  68.       Left            =   105
  69.       Locked          =   -1  'True
  70.       MultiLine       =   -1  'True
  71.       ScrollBars      =   2  'Vertical
  72.       TabIndex        =   0
  73.       Top             =   630
  74.       Width           =   7260
  75.    End
  76. End
  77. Attribute VB_Name = "frmMath"
  78. Attribute VB_GlobalNameSpace = False
  79. Attribute VB_Creatable = False
  80. Attribute VB_PredeclaredId = True
  81. Attribute VB_Exposed = False
  82. Option Explicit
  83. Option Base 1
  84.  
  85. Private Const Iteration = 250
  86.  
  87. Dim IsLoaded         As Integer
  88.  
  89. Dim TimerStartOk     As Integer
  90. Dim TimerCloseOk     As Integer
  91.  
  92. Dim TimerHandle      As Integer
  93. Dim TimerValue       As Long
  94.  
  95. Private Sub cmdNP_Click(Index As Integer)
  96.  
  97.    Call sub_NextPrev(cmb_Function, Index)
  98.  
  99. End Sub
  100.  
  101.  
  102. Private Sub cmb_Function_Click()
  103.    
  104.    If (IsLoaded = False) Then Exit Sub
  105.    
  106.    Call cDisableFI(mdiT2W.Picture1)
  107.    
  108.    txt_Result = ""
  109.    
  110.    DoEvents
  111.    
  112.    Select Case cmb_Function.ListIndex
  113.       Case 0
  114.          Call TestComplex
  115.       Case 1
  116.          Call TestRootN
  117.       Case 2
  118.          Call TestGreatCommonDivisor
  119.       Case 3
  120.          Call TestRotate
  121.       Case 4
  122.          Call TestSortDigits
  123.       Case 5
  124.          Call TestSumX
  125.       Case 6
  126.          Call TestRound
  127.    End Select
  128.  
  129.    DoEvents
  130.    Call cEnableFI(mdiT2W.Picture1)
  131.    
  132. End Sub
  133.  
  134.  
  135. Private Sub Form_Activate()
  136.  
  137.    mdiT2W.Label2.Caption = cInsertBlocks(mdiT2W.Label2.Tag, "" & Iteration)
  138.  
  139. End Sub
  140.  
  141. Private Sub Form_Load()
  142.  
  143.    IsLoaded = False
  144.    
  145.    Show
  146.  
  147.    Call sub_Load_Combo(cmb_Function, T2WDirInst + "_math.t2w")
  148.    
  149.    IsLoaded = True
  150.    
  151. End Sub
  152.  
  153. Private Sub Command1_Click()
  154.    
  155.    Call cmb_Function_Click
  156.    
  157. End Sub
  158.  
  159. Private Sub TestRootN()
  160.    
  161.    Dim lResult          As Long
  162.    Dim dResult          As Long
  163.    Dim strResult        As String
  164.    Dim strDisplay       As String
  165.    
  166.    Dim i                As Integer
  167.    Dim dValue           As Double
  168.    
  169.    Dim Str1             As String
  170.    Dim Str2             As String
  171.    
  172.    Dim Itr              As Long
  173.    
  174.    lResult = 0
  175.    
  176.    strResult = ""
  177.    strDisplay = ""
  178.    
  179.    dValue = 123456789.987654
  180.    
  181.    strDisplay = strDisplay & "Root 3 of " & dValue & " with a precision of " & vbCrLf & vbCrLf
  182.    
  183.    For i = 3 To 20 Step 2
  184.      
  185.       strDisplay = strDisplay & "   " & i & " is " & cRootN(dValue, 3, i, Itr) & "   (Iteration = " & Itr & ")" & vbCrLf
  186.       
  187.    Next i
  188.    
  189.    strDisplay = strDisplay & vbCrLf
  190.    
  191.    dValue = 123456789.987654
  192.    
  193.    strDisplay = strDisplay & "Root 70 of " & dValue & " with a precision of " & vbCrLf & vbCrLf
  194.    
  195.    For i = 3 To 20 Step 2
  196.      
  197.       strDisplay = strDisplay & "   " & i & " is " & cRootN(dValue, 70, i, Itr) & "   (Iteration = " & Itr & ")" & vbCrLf
  198.       
  199.    Next i
  200.    
  201.    strDisplay = strDisplay + vbCrLf
  202.    
  203.    txt_Result = strDisplay
  204.  
  205.    'time the function
  206.  
  207.    TimerHandle = cTimerOpen()
  208.    TimerStartOk = cTimerStart(TimerHandle)
  209.    
  210.    For i = 1 To Iteration
  211.       dResult = cRootN(dValue, 10, 15, Itr)
  212.    Next i
  213.    
  214.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  215.    
  216.    TimerCloseOk = cTimerClose(TimerHandle)
  217.  
  218. End Sub
  219.  
  220. Private Sub TestComplex()
  221.    
  222.    Dim lResult          As Long
  223.    Dim dResult          As Double
  224.    Dim strResult        As String
  225.    Dim strDisplay       As String
  226.    
  227.    Dim i                As Integer
  228.    
  229.    Dim Str1             As String
  230.    Dim Str2             As String
  231.    
  232.    Dim z1               As tagCOMPLEX
  233.    Dim z2               As tagCOMPLEX
  234.    Dim z                As tagCOMPLEX
  235.    
  236.    strResult = ""
  237.    strDisplay = ""
  238.    
  239.    z1.a = 3: z1.b = 4
  240.    z2.a = 6: z2.b = 8
  241.    
  242.    strDisplay = strDisplay & "z1 = ( " & z1.a & " + i . " & z1.b & " )" & vbCrLf
  243.    strDisplay = strDisplay & "z2 = ( " & z2.a & " + i . " & z2.b & " )" & vbCrLf & vbCrLf
  244.    
  245.    z = cCpxAdd(z1, z2)
  246.    strDisplay = strDisplay & "z1+z2 = ( " & z.a & " + i . " & z.b & " )" & vbCrLf & vbCrLf
  247.    
  248.    z = cCpxSub(z1, z2)
  249.    strDisplay = strDisplay & "z1-z2 = ( " & z.a & " + i . " & z.b & " )" & vbCrLf & vbCrLf
  250.    
  251.    z = cCpxMul(z1, z2)
  252.    strDisplay = strDisplay & "z1.z2 = ( " & z.a & " + i . " & z.b & " )" & vbCrLf & vbCrLf
  253.    
  254.    z = cCpxDiv(z1, z2)
  255.    strDisplay = strDisplay & "z1/z2 = ( " & z.a & " + i . " & z.b & " )" & vbCrLf & vbCrLf
  256.    
  257.    z = cCpxConjugue(z1)
  258.    strDisplay = strDisplay & "conjugue of z1 = ( " & z.a & " + i . " & z.b & " )" & vbCrLf
  259.    z = cCpxConjugue(z2)
  260.    strDisplay = strDisplay & "conjugue of z2 = ( " & z.a & " + i . " & z.b & " )" & vbCrLf & vbCrLf
  261.    
  262.    z = cCpxPowerN(z1, 3)
  263.    strDisplay = strDisplay & "power 3 of z1 = ( " & z.a & " + i . " & z.b & " )" & vbCrLf
  264.    z = cCpxPowerN(z2, 3)
  265.    strDisplay = strDisplay & "power 3 of z2 = ( " & z.a & " + i . " & z.b & " )" & vbCrLf & vbCrLf
  266.    
  267.    z = cCpxSqrt(z1)
  268.    strDisplay = strDisplay & "square root of z1 = ( " & z.a & " + i . " & z.b & " )" & vbCrLf
  269.    z = cCpxSqrt(z2)
  270.    strDisplay = strDisplay & "square root of z2 = ( " & z.a & " + i . " & z.b & " )" & vbCrLf & vbCrLf
  271.    
  272.    dResult = cCpxModulus(z1)
  273.    strDisplay = strDisplay & "modulus of z1 = " & dResult & vbCrLf
  274.    dResult = cCpxModulus(z2)
  275.    strDisplay = strDisplay & "modulus of z1 = " & dResult & vbCrLf & vbCrLf
  276.    
  277.    dResult = cCpxArgument(z1)
  278.    strDisplay = strDisplay & "argument of z1 = " & dResult & vbCrLf
  279.    dResult = cCpxArgument(z2)
  280.    strDisplay = strDisplay & "argument of z2 = " & dResult & vbCrLf & vbCrLf
  281.    
  282.    strDisplay = strDisplay + vbCrLf
  283.    
  284.    txt_Result = strDisplay
  285.  
  286.    'time the function
  287.  
  288.    TimerHandle = cTimerOpen()
  289.    TimerStartOk = cTimerStart(TimerHandle)
  290.    
  291.    For i = 1 To Iteration
  292.       z = cCpxAdd(z1, z2)
  293.    Next i
  294.    
  295.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  296.    
  297.    TimerCloseOk = cTimerClose(TimerHandle)
  298.  
  299. End Sub
  300.  
  301. Private Sub TestGreatCommonDivisor()
  302.    
  303.    Dim lResult          As Long
  304.    Dim strResult        As String
  305.    Dim strDisplay       As String
  306.    
  307.    Dim i                As Integer
  308.    
  309.    Dim a                As Long
  310.    Dim b                As Long
  311.    
  312.    lResult = 0
  313.    
  314.    strResult = ""
  315.    strDisplay = ""
  316.    
  317.    Call cRndInit(-1)
  318.    
  319.    For i = 1 To 10
  320.       a = cRndL()
  321.       b = cRndL()
  322.       strDisplay = strDisplay & "Great Common Divisor of (" & a & ", " & b & ") is " & cGreatCommonDivisor(a, b) & vbCrLf
  323.    Next i
  324.    
  325.    strDisplay = strDisplay & vbCrLf
  326.    
  327.    txt_Result = strDisplay
  328.  
  329.    'time the function
  330.  
  331.    TimerHandle = cTimerOpen()
  332.    TimerStartOk = cTimerStart(TimerHandle)
  333.    
  334.    For i = 1 To Iteration
  335.       lResult = cGreatCommonDivisor(a, b)
  336.    Next i
  337.    
  338.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  339.    
  340.    TimerCloseOk = cTimerClose(TimerHandle)
  341.  
  342. End Sub
  343.  
  344. Private Sub TestRotate()
  345.    
  346.    Dim lResult          As Long
  347.    Dim strResult        As String
  348.    Dim strDisplay       As String
  349.    
  350.    Dim i                As Integer
  351.    
  352.    Dim a                As Long
  353.    Dim b                As Integer
  354.    
  355.    lResult = 0
  356.    
  357.    strResult = ""
  358.    strDisplay = ""
  359.    
  360.    Call cRndInit(-1)
  361.    
  362.    For i = 1 To 10
  363.       a = Abs(cRndL())
  364.       b = Abs(cRndI()) Mod 10
  365.       strDisplay = strDisplay & "Rotate '" & a & " (" & b & " times) is " & cRotate(a, b) & vbCrLf
  366.    Next i
  367.    
  368.    strDisplay = strDisplay & vbCrLf
  369.    
  370.    txt_Result = strDisplay
  371.  
  372.    'time the function
  373.  
  374.    TimerHandle = cTimerOpen()
  375.    TimerStartOk = cTimerStart(TimerHandle)
  376.    
  377.    For i = 1 To Iteration
  378.       lResult = cRotate(a, b)
  379.    Next i
  380.    
  381.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  382.    
  383.    TimerCloseOk = cTimerClose(TimerHandle)
  384.  
  385. End Sub
  386.  
  387. Private Sub TestSortDigits()
  388.    
  389.    Dim lResult          As Long
  390.    Dim strResult        As String
  391.    Dim strDisplay       As String
  392.    
  393.    Dim i                As Integer
  394.    
  395.    Dim a                As Long
  396.    
  397.    lResult = 0
  398.    
  399.    strResult = ""
  400.    strDisplay = ""
  401.    
  402.    Call cRndInit(-1)
  403.    
  404.    For i = 1 To 10
  405.       a = cRndL()
  406.       strDisplay = strDisplay & "Sort '" & a & " is " & cSortDigits(a) & vbCrLf
  407.    Next i
  408.    
  409.    strDisplay = strDisplay & vbCrLf
  410.    
  411.    txt_Result = strDisplay
  412.  
  413.    'time the function
  414.  
  415.    TimerHandle = cTimerOpen()
  416.    TimerStartOk = cTimerStart(TimerHandle)
  417.    
  418.    For i = 1 To Iteration
  419.       lResult = cSortDigits(a)
  420.    Next i
  421.    
  422.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  423.    
  424.    TimerCloseOk = cTimerClose(TimerHandle)
  425.  
  426. End Sub
  427.  
  428. Private Sub TestSumX()
  429.    
  430.    Dim lResult          As Long
  431.    Dim strResult        As String
  432.    Dim strDisplay       As String
  433.    
  434.    Dim i                As Integer
  435.    
  436.    Dim a                As Long
  437.    
  438.    lResult = 0
  439.    
  440.    strResult = ""
  441.    strDisplay = ""
  442.    
  443.    Call cRndInit(-1)
  444.    
  445.    For i = 1 To 5
  446.       a = cRndL()
  447.       strDisplay = strDisplay & "SumDigits '" & a & " is " & cSumDigits(a) & vbCrLf
  448.       strDisplay = strDisplay & "SumDigitsAlt '" & a & " is " & cSumDigitsAlt(a) & vbCrLf
  449.       strDisplay = strDisplay & "SumDivisors '" & a & " is " & cSumDivisors(a) & vbCrLf & vbCrLf
  450.    Next i
  451.    
  452.    txt_Result = strDisplay
  453.  
  454.    'time the function
  455.  
  456.    TimerHandle = cTimerOpen()
  457.    TimerStartOk = cTimerStart(TimerHandle)
  458.    
  459.    For i = 1 To Iteration
  460.       lResult = cSumDigits(a)
  461.    Next i
  462.    
  463.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  464.    
  465.    TimerCloseOk = cTimerClose(TimerHandle)
  466.  
  467. End Sub
  468.  
  469. Private Sub TestRound()
  470.    
  471.    Dim lResult          As Long
  472.    Dim dResult          As Double
  473.    Dim strResult        As String
  474.    Dim strDisplay       As String
  475.    
  476.    Dim i                As Integer
  477.    
  478.    Dim a                As Long
  479.    
  480.    lResult = 0
  481.    
  482.    strResult = ""
  483.    strDisplay = ""
  484.    
  485.    strDisplay = "Round (x,y) " & vbCrLf & vbCrLf
  486.    
  487.    strDisplay = strDisplay & "(3.56376, 3) = " & cRound(3.56376, 3) & vbCrLf
  488.    strDisplay = strDisplay & "(3.56376, 1) = " & cRound(3.56376, 1) & vbCrLf
  489.    strDisplay = strDisplay & "(3.56376, 0) = " & cRound(3.56376, 0) & vbCrLf
  490.    strDisplay = strDisplay & "(3.56376, 2) = " & cRound(3.56376, 2) & vbCrLf
  491.    strDisplay = strDisplay & "(1.4999, 3) = " & cRound(1.4999, 3) & vbCrLf
  492.    strDisplay = strDisplay & "(1.4999, 2) = " & cRound(1.4899, 2) & vbCrLf & vbCrLf
  493.  
  494.    strDisplay = strDisplay & "RoundNearest (x,y) " & vbCrLf & vbCrLf
  495.    
  496.    strDisplay = strDisplay & "(12.4, 5) = " & cRoundNearest(12.4, 5) & vbCrLf
  497.    strDisplay = strDisplay & "(12.4, 5) = " & cRoundNearest(12.5, 5) & vbCrLf
  498.    strDisplay = strDisplay & "(12.6, 5) = " & cRoundNearest(12.6, 5) & vbCrLf
  499.    strDisplay = strDisplay & "(18.1, 5) = " & cRoundNearest(18.1, 5) & vbCrLf
  500.    strDisplay = strDisplay & "(0.1, 5) = " & cRoundNearest(0.1, 5) & vbCrLf
  501.    strDisplay = strDisplay & "(2.6, 5) = " & cRoundNearest(2.6, 5) & vbCrLf
  502.    
  503.    txt_Result = strDisplay
  504.  
  505.    'time the function
  506.  
  507.    TimerHandle = cTimerOpen()
  508.    TimerStartOk = cTimerStart(TimerHandle)
  509.    
  510.    For i = 1 To Iteration
  511.       dResult = cRound(1.2345, 5)
  512.    Next i
  513.    
  514.    mdiT2W.pnl_Timer = cTimerRead(TimerHandle)
  515.    
  516.    TimerCloseOk = cTimerClose(TimerHandle)
  517.  
  518. End Sub
  519.  
  520.  
  521.  
  522.