home *** CD-ROM | disk | FTP | other *** search
/ Hot Shareware 32 / hot34.iso / ficheros / LVB / T2W32523.ZIP / _MATH.FRM < prev    next >
Text File  |  1998-04-07  |  16KB  |  589 lines

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