2016年12月19日 星期一

函式


  • 內建數值函數

        Dim ans As String = ""
        ans &= "Math.Abs(2)=" & Math.Abs(2) & vbNewLine
        ans &= "Math.Abs(-2)=" & Math.Abs(-2) & vbNewLine
        ans &= "Cint(2.5)=" & CInt(2.5) & vbNewLine
        ans &= "Cint(-2.5)=" & CInt(-2.5) & vbNewLine
        ans &= "Cint(-2.51)=" & CInt(-2.51) & vbNewLine
        ans &= "Cint(3.5)=" & CInt(3.5) & vbNewLine
        ans &= "Cint(-3.5)=" & CInt(-3.5) & vbNewLine
        ans &= "Int(2.4)=" & Int(2.4) & vbNewLine
        ans &= "Int(-2.4)=" & Int(-2.4) & vbNewLine
        ans &= "Fix(2.4)=" & Fix(2.4) & vbNewLine
        ans &= "Fix(-2.4)=" & Fix(-2.4) & vbNewLine
        ans &= "Math.Round(5/3,2)=" & Math.Round(5 / 3, 2) & vbNewLine
        ans &= "Math.Round(1.665,2)=" & Math.Round(1.665, 2) & vbNewLine
        ans &= "Math.Ceiling(7.03)=" & Math.Ceiling(7.03) & vbNewLine
        ans &= "Math.Ceiling(-7.03)=" & Math.Ceiling(-7.03) & vbNewLine
        ans &= "Math.Floor(7.03)=" & Math.Floor(7.03) & vbNewLine
        ans &= "Math.Floor(-7.03)=" & Math.Floor(-7.03) & vbNewLine
        ans &= "Math.Truncate(7.03)=" & Math.Truncate(7.03) & vbNewLine
        ans &= "Math.Truncate(-7.03)=" & Math.Truncate(-7.03) & vbNewLine
        ans &= "Int(Rnd()*10)+5=" & Int(Rnd() * 10) + 5 & vbNewLine
        ans &= "Math.Sqrt(4)=" & Math.Sqrt(4) & vbNewLine
        ans &= "Math.Sign(4)=" & Math.Sign(4) & vbNewLine
        ans &= "Math.Sign(0)=" & Math.Sign(0) & vbNewLine
        ans &= "Math.Sign(-4)=" & Math.Sign(-4) & vbNewLine
        ans &= "Math.Log(2)/Math.Log(10)=" & Math.Log(2) / Math.Log(10) & vbNewLine
        ans &= "Math.Exp(1)=" & Math.Exp(1) & vbNewLine
        ans &= "Math.Pow(2,10)=" & Math.Pow(2, 10) & vbNewLine
        ans &= "Math.Max(2,3)=" & Math.Max(2, 3) & vbNewLine
        ans &= "Math.Min(2,3)=" & Math.Min(2, 3) & vbNewLine
        ans &= "Math.PI=" & Math.PI & vbNewLine
        ans &= "Math.E=" & Math.E & vbNewLine
        Dim data(10, 3) As Integer
        ans &= "UBound(Data)=" & UBound(data) & vbNewLine
        ans &= "UBound(Data, 2)=" & UBound(data, 2) & vbNewLine
        ans &= "LBound(data)=" & LBound(data) & vbNewLine
        ans &= "LBound(data, 2)=" & LBound(data, 2) & vbNewLine
        Dim PI = 3.14159265358979
        ans &= "Math.Sin(PI / 6)=" & Math.Sin(PI / 6) & vbNewLine
        Me.TextBox1.Text = ans
    End Sub




  • 內建字串函數

        Dim ans As String = ""
        ans &= "Chr(65)=" & Chr(65) & vbNewLine
        ans &= "Asc(A)=" & Asc("A") & vbNewLine
        ans &= "Asc(A)=" & Hex(Asc("王")) & vbNewLine
        ans &= "ChrW(65)=" & ChrW(65) & vbNewLine
        ans &= "AscW(A)=" & AscW("A") & vbNewLine
        ans &= "Hex(16)=" & Hex(16) & vbNewLine
        ans &= "Oct(16)=" & Oct(16) & vbNewLine
        ans &= "Val(123)=" & Val("123") & vbNewLine
        ans &= "Val(52A)=" & Val("52A") & vbNewLine
        ans &= "Val(xxx)=" & Val("xxx") & vbNewLine
        ans &= "Str(23)=" & Str("23") & vbNewLine
        ans &= "Len(ABCDE)=" & Len("ABCDE") & vbNewLine
        ans &= "Left(ABCDE,2)" & Strings.Left("ABCDE", 2) & vbNewLine
        ans &= "Right(ABCDE,2)" & Strings.Right("ABCDE", 2) & vbNewLine
        ans &= "Mid(ABCDE,2,3)=" & Mid("ABCDE", 2, 3) & vbNewLine
        ans &= "UCase(AbcDe)=" & UCase("AbcDe") & vbNewLine
        ans &= "LCase(AbcDe)=" & LCase("AbcDe") & vbNewLine
        ans &= "Trim(  A B  )=" & Trim("  A B  ") & vbNewLine
        ans &= "LTrim(  A B  )=" & LTrim("  A B  ") & vbNewLine
        ans &= "RTrim(  A B  )=" & RTrim("  A B  ") & vbNewLine
        Dim data(10, 3) As Integer
        ans &= "UBound(data)=" & UBound(data) & vbNewLine
        ans &= "UBound(data,2)=" & UBound(data, 2) & vbNewLine
        ans &= "LBound(data)=" & LBound(data) & vbNewLine
        ans &= "LBound(data,2)=" & LBound(data, 2) & vbNewLine
        Dim PI = 3.14159265358979
        ans &= "Math.Sin(PI / 6)=" & Math.Sin(PI / 6) & vbNewLine
        ans &= "StrDup(4,65)=" & StrDup(4, "65") & vbNewLine
        ans &= "StrReverse(ABCDE)=" & StrReverse("ABCDE") & vbNewLine
        ans &= "RSet(2.3,5)=" & RSet(2.3, 5) & vbNewLine
        ans &= "LSet(2.3,5)=" & LSet(2.3, 5) & vbNewLine
        ans &= "InStr(ABCDABCD,D)=" & InStr("ABCDABCD", "D") & vbNewLine
        ans &= "InStr(ABCDEF,CC)=" & InStr("ABCDEF", "CC") & vbNewLine
        ans &= "InStr(6,ABCDABCD,D)=" & InStr(6, "ABCDABCD", "D") & vbNewLine
        ans &= "InStr(6,ABCDABCD,Ab)=" & InStr(6, "ABCDABCD", "Ab") & vbNewLine
        ans &= "InStrRev(ABCDABCD,D)=" & InStrRev("ABCDABCD", "D") & vbNewLine
        ans &= "InStrRev(ABCDABCD,D,7)=" & InStrRev("ABCDABCD", "D", 7) & vbNewLine
        ans &= "Replace(ABCDE,BCD,xxx)=" & Replace("ABCDE", "BCD", "xxx") & vbNewLine
        Me.TextBox2.Text = ans
    End Sub

12/9 訂正

sumEven

'Q1:sumEven(n) 己知正整數 n,求 2+4+6..+ n 之和'偶數
Dim n As Integer
n = InputBox("n=", "Q1:sumEven(n) 己知正整數 n,求 1+3+5..+ n 之和", 1)
n = If(n Mod 2 = 1, n - 1, n)
Me.TextBox3.Text = sumEven(n)
模組  
'Q1:sumEven(n) 己知正整數 n,求 2+4+6..+ n 之和
'偶數

 Function sumEven(n)
        If n <= 2 Then
              Return n
        Else
              Return sumEven(n - 2) + n
        End If
End Function
最小公倍數lcm
       '輸入
        Dim a, b As Integer
        a = InputBox("輸入一個正整數A", "求出「最小公倍數」", 0)
        b = InputBox("輸入一個正整數B", "求出「最小公倍數」", 0)
        '處理
        Dim ans As String = ""
        ans = lcm(a, b)
        '輸出
        Me.TextBox4.Text = ans
模組 
'GCD(a, b) 求A 及B 之最大公因數
Function GCD(a, b)
     If b = 0 Then
          Return a
     Else
          Return GCD(b, a Mod b)
     End If
End Function 
'lcm(a, b) 求A 及B 之最小公倍數
'a * b = lcm(a, b) * GCD(a, b)

Function lcm(a, b)
      Return a * b / GCD(a, b)
End Function