1、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):計算以 logeX 之值RND:產生亂數值,數值介於0與1之間。,1、INT(X)INT:Integer,即整數之意 比輸入的數值還小的整數。 (高斯函數),例:,(1) INT(3.6) =,3,(2) INT(
2、-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) =,
3、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)
4、=,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) =,會印出不正確的函數呼叫,小小測驗,答對鼓鼓掌,1、INT (6.5) =2、CINT (-5.5) =3、FIX (88.8) =4、SGN (-6.1) =5、ABS (-101) =6、SQR (81) =,6,-6,88,-1,101,9,7、EXP(X):EXP:exponent,意即指數之意計算
5、 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 之值。,例:,LOG函數 與 EXP函數 互為反函數所以EXP(LOG(X)=XLOG(EXP(X)=X,(e=2.718282),(1) LOG(1) =,loge1 =,0,(3) EXP(LOG(5) =,5,(4) LOG(EXP(7) =,7,(2) LOG(-1) =,印出不正確的函數呼叫,9、 RND:產生亂數
6、值,數值介於0與1之間。,(1)會產生一個亂數值,0=RND1,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,迴圈從1到3印出 亂數值下一個 I,結果 .143502 .348721 .298700,印出空白行迴圈從1到3印出 亂數值下一個,.783214 .543211 .111003,INT( ),9、 RND: 產生亂數值,數值介於0與1之間。,(2)如何產生AB之間的隨機整數值? 公式:,(B-A+1),RND*,+A,例
7、1:要產生16之間的隨機整數,其公式為? INT ( RND * (6-1+1) + 1 ) INT ( RND * (6-1+1) ) + 1,或 INT( RND*(B-A+1)+A,亂數公式:,例:欲產生510的隨機整數,其公式為? INT ( RND * (6) +5 ) INT ( RND * (6) ) +5,INT( ),例2:INT (RND*15)+2產生的亂數範圍? B-A+1=15 A=2 所以 B=16 A=2,亂數公式:,(B-A+1),RND*,+A,或 INT( RND*(B-A+1)+A,例3、產生3個16之間的隨機整數,INT( ),亂數公式:,(B-A+1)
8、,RND*,+A,或 INT( RND*(B-A+1)+A,FOR I = 1 TO 3NEXT I,PRINT INT ( RND * 6 ) + 1,,結果: 2 6 3,10、RANDOMIZE N,N為種子數,範圍:-3276832767不同的種子數,會產生不同組的亂數亂數變化更大的方式: RANDOMIZE TIMER 利用電腦時間,因為數值一直在變,所以亂數變化會更大,例:,RANDOMIZE TIMER FOR I = 1 TO 5 PRINT INT ( RND * 12 ) + 1 NEXT I,結果: 6 5 11 3 4,內建函數應用(一),Dim a, b As Integer Dim c As DoublePrivate Sub 計算_Click() a = Val(Text1.Text) b = Val(Text2.Text) c = (a 2 + b 2) 0.5 Label3.Caption = 直角三角形斜邊c= & cEnd SubPrivate Sub 重設_Click() Text1.Text = “ Text2.Text = “ Label3.Caption = “ Text1.SetFocusEnd SubPrivate Sub 關閉_Click()EndEnd Sub,使用val進行直角三角形斜邊計算,