210 likes | 419 Views
VB 內建函數與應用. VB 內建函數. 數值函數 字串函數 日期時間 型態轉換. 一、數值函數. 共 9 個數值函數 INT (X) :比輸入的數值還小的整數。 ( 高斯函數 ) CINT (X) : 4 捨 6 入, 5 偶去 FIX (X) :將數值的小數部份去除。 ( 無條件捨去 ) SGN (X) :取符號值。 ABS (X) :取絕對值。 SQR (X) :取平方根 。 EXP (X) :計算 ex 值。 (e=2.718282) LOG (X) :計算以 log e X 之值
E N D
VB內建函數 • 數值函數 • 字串函數 • 日期時間 • 型態轉換
一、數值函數 • 共9個數值函數 • INT(X):比輸入的數值還小的整數。 (高斯函數) • CINT(X):4捨6入,5偶去 • FIX(X):將數值的小數部份去除。 (無條件捨去) • SGN(X):取符號值。 • ABS(X):取絕對值。 • SQR(X):取平方根 。 • EXP(X):計算 ex 值。 (e=2.718282) • LOG(X):計算以 logeX 之值 • RND:產生亂數值,數值介於0與1之間。
1、INT(X)INT:Integer,即「整數」之意 比輸入的數值還小的整數。 (高斯函數) 例: (1) INT(3.6) = 3 (2) INT(-3.6) = -4 (3) INT(-99.2) = -100 (4) INT(-85.6) = -86 (5) INT(18.5) = 18
2、CINT(X)4捨6入。小數為5,整數偶數時捨去,奇數進位。 口訣:4捨6入,5偶去 • 例: (1) CINT(3.6) = 4 (2) CINT(-3.6) = -4 (3) CINT(4.5) = 4 (4) CINT(5.5) = 6 (5) CINT(-1.9) = -2
3、FIX(X):將數值的小數部份去除。 (無條件捨去) • 例: (1) FIX(3.6) = 3 (2) FIX(-3.6) = -3 (3) FIX(10.8) = 10 (4) FIX(99.8) = 99 (5) FIX(5.001) = 5
4、 SGN(X):sign,即「符號」之意 取符號值。數值為正數為1,負數為-1,零為0。 • 例: (1) SGN(3) = 1 (2) SGN(-8) = -1 (3) SGN(0) = 0 (4) SGN(15) = 1 (5) SGN(-3) = -1
5、 ABS(X): ABS:abslolute value,「絕對值」之意取絕對值。將數值變成正數。 • 例: (1) ABS(3.6) = 3.6 (2) ABS(-12) = 12 (3) ABS(12.56) = 12.56 (4) ABS(-12.33) = 12.33 (5) ABS(-6.16) = 6.16
6、SQR(X):SQR:square,意即「平方」之意取平方根 。 • 例: (1) SQR(16) = 4 (2) SQR(100) = 10 (3) SQR(25) = 5 (4) SQR(0) = 0 (5) SQR(-100) = 會印出不正確的函數呼叫
小小測驗,答對鼓鼓掌 6 1、INT (6.5) = 2、CINT (-5.5) = 3、FIX (88.8) = 4、SGN (-6.1) = 5、ABS (-101) = 6、SQR (81) = -6 88 -1 101 9
7、EXP(X):EXP:exponent,意即「指數」之意計算 ex值。 (e=2.718282) • 例: (1) EXP(1) = e1 = 2.718282 (2) EXP(0) = e0 = 1 (3) EXP(2) = e2 = 7.389056
8、LOG(X):LOG:logarithm,意即「對數」之意。計算以logeX 之值。 • 例: (e=2.718282) (1) LOG(1) = loge1= 0 (2) LOG(-1) = 印出不正確的函數呼叫 LOG函數 與 EXP函數 互為反函數 所以EXP(LOG(X))=X LOG(EXP(X))=X (3) EXP(LOG(5)) = 5 (4) LOG(EXP(7)) = 7
這是不可能的啦! 9、 RND:產生亂數值,數值介於0與1之間。 (1)會產生一個亂數值,0<=RND<1 PRINT RND 結果 .143502 .596251 1.23112
例: • FOR I=1 TO 3 • PRINT RND • NEXT I • PRINT • FOR I=1 TO 3 • PRINT RND • NEXT I 迴圈I從1到3 印出 亂數值 下一個 I 印出空白行 迴圈I從1到3 印出 亂數值 下一個I 結果 .143502 .348721 .298700 .783214 .543211 .111003
9、 RND: 產生亂數值,數值介於0與1之間。 (2)如何產生A~B之間的隨機整數值? 公式: INT( ) (B-A+1) +A RND* 或 INT( RND*(B-A+1))+A 例1:要產生1~6之間的隨機整數,其公式為? INT ( RND * (6-1+1) + 1 ) INT ( RND * (6-1+1) ) + 1
INT( ) (B-A+1) +A RND* 或 INT( RND*(B-A+1))+A 亂數公式: • 例:欲產生5~10的隨機整數,其公式為? INT ( RND * (6) +5 ) INT ( RND * (6) ) +5
亂數公式: INT( ) (B-A+1) +A RND* 或 INT( RND*(B-A+1))+A • 例2:INT (RND*15)+2產生的亂數範圍? B-A+1=15 A=2 所以 B=16 A=2
亂數公式: INT( ) (B-A+1) +A RND* 或 INT( RND*(B-A+1))+A • 例3、產生3個1~6之間的隨機整數 FOR I = 1 TO 3 NEXT I PRINT INT ( RND * 6 ) + 1, 結果: 2 6 3
10、RANDOMIZE [N] • N為種子數,範圍:-32768~32767 • 不同的種子數,會產生不同組的亂數 • 亂數變化更大的方式: RANDOMIZE TIMER 利用電腦時間,因為數值一直在變,所以亂數變化會更大
例: RANDOMIZE TIMER FOR I = 1 TO 5 PRINT INT ( RND * 12 ) + 1 NEXT I 結果: 6 5 11 3 4
內建函數應用(一) 使用val進行直角三角形斜邊計算 Dim a, b As Integer Dim c As Double Private Sub 計算_Click() a = Val(Text1.Text) b = Val(Text2.Text) c = (a ^ 2 + b ^ 2) ^ 0.5 Label3.Caption = "直角三角形斜邊c=" & c End Sub Private Sub 重設_Click() Text1.Text = "“ Text2.Text = "“ Label3.Caption = "“ Text1.SetFocus End Sub Private Sub 關閉_Click()End End Sub