Presentation is loading. Please wait.

Presentation is loading. Please wait.

新觀念的 VB6 教本 第5章 資料與運算.

Similar presentations


Presentation on theme: "新觀念的 VB6 教本 第5章 資料與運算."— Presentation transcript:

1 新觀念的 VB6 教本 第5章 資料與運算

2 5-1 資料的表示法

3 資料的表示法 數值資料 — 整數、實數、科學記號 字串資料 日期時間資料 布林資料

4 整數 十進位的表示法:逗號是不能使用的,如10,000。 十六進位數的表示法:前面加上&H
八進位數的表示法:前面加上 & 或 &O(字母O) 的十進位表示法 &H 的十六進位表示法 & 的八進位表示法 &O144 也是100的八進位表示法 十六進位是 64((64)16=6×161+4×160=100 八進位是 144((144)8 =1×82+4×81+4×80=100

5 實例練習(p.136) 寫一程式讓使用者輸入十進位數,然後顯示出其十六進位及八進位數。

6 實例練習 -- Hex 及 Oct 函數 想要將十進位數表示成十六進位數及八進位數,並不需要自己寫程式進行轉換,VB 所提供的 Hex 及 Oct 函數,就可以幫我們做好這件事情,例如: Print Hex(100) 64 Print Oct(100) 144

7 實例練習 – 程式撰寫 在表單上佈置一命令鈕,然後撰寫以下程式: Private Sub Command1_Click()
A = Val(InputBox(“輸入一十進位數”)) MsgBox "十六進位數 = &H" & Hex(A) & vbCrLf & "八進位數 = &O" & Oct(A) End Sub

8 實數 小數方面,VB的表示法也跟數學完全相同,如3.14159、0.0016、-8000.5等均為正確的寫法。

9 實數 -- 科學記號 一般科學記號表示法 說 明 = 9.75×109 將小數點左移9位,得到 ,再乘以 = 5.6×10-7 將小數點右移7位,得到 ,再乘以10-7 VB 使用算術運算符號表達,例如: 9.75×109 表達成 *10^9 5.6× 表達成 5.6*10^-7 * 代表乘號, ^ 代表次方符號。

10 實數 -- 浮點數表示法 科學記號中的「有效數字」及「指數」 例如:

11 字串資料 以 “” 括起來的文數字都算是字串,如:
"RUN!PC" "Address #83" "1998" "12+75=?" "旗標資訊月刊" Print "RUN!PC" ' 放到記憶體時, 兩邊的雙引號會被去掉, RUN!PC ' 所以輸出時也就沒有雙引號了。

12 字串資料 -- 如果雙引號裡面又有雙引號 VB 規定字串中的雙引號要用兩個雙引號來表示,例如:
Print "ABC"xyz" ' VB 以為 "ABC"xyz" 中的 "ABC" 是字串, ABC ' 所以輸出了 ABC。

13 日期時間資料 必須用 ## 括起來 #9:30# 表示上午9點30分 #1997/12/31# 表示1997年12月31日
#9:30# 表示上午9點30分 #1997/12/31# 表示1997年12月31日 輸出時,VB一律使用「系統的日期格式」,並且去掉 ## 再輸出,例如: Print #28 Feb 1998# 1998/2/28

14 標準的日期表示法 標準的日期表示法是 #西元年/月/日#,例如:
#1997/7/1# 表示 西元 1997 年 7 月 1 日 #2005/12/31# 表示 西元 2005 年 12 月 31 日 西元年從1930到2029可以簡寫成30到99及00到29: #89/7/1# 等於 #1989/7/1#。

15 非標準的日期表示法 如果不是標準日期表示法,VB 也會做智慧的判斷,例如以下的寫法都表示 #1997/2/28#(1997年2月28日):
# # # # #28 Feb 1997# #February 28, 1997#

16 系統的日期格式(1) 同樣是 #1998/2/28#,可能有些人的機器輸出了「1998/2/28」,但也可能有些人的機器輸出了「2/28/1998」,這是因為VB 採用系統的日期格式來輸出資料,而系統的日期格式又可以使用以下方法來進行設定:

17 系統的日期格式(2) 以上圖為例,所設定的日期格式為 "MM/dd/yyyy",
所以 #1998/2/28# 將會被輸出成「02/28/1998」。

18 錯誤的日期表示法 不存在的日期及中文日期,VB 是不接受的,所以:
#1997/13/29# 錯誤, 月份 13 超過範圍 #1997/2/29# 錯誤, 1997年不是閏年, 月只有 28天 #1997 年 7 月 1 日# 錯誤,中文日期

19 標準的時間表示法 標準的時間表示法是 #時:分:秒 AM# 及 #時:分:秒 PM#,其中 AM 表示上午,PM 表示下午,例如:

20 非標準的時間表示法 如果不是上述的標準時間表示法,VB 也會做智慧的判斷,例如:
#9 A# 等於 #9:00:00 AM# #17:3# 等於 #5:03:00 PM#

21 錯誤的時間表示法 輸入時間時,有效的時分秒分別是:時:0~23、分秒:0~59,所以下面的表示法是錯誤的:
#24:00:00# 錯誤, '時' 超過 23 #17:60:00# 錯誤, '分' 超過 59 #12:00:-1# 錯誤, '秒' 是負數

22 VB 如何輸出時間? 輸出時間時,VB 也一律採用系統的時間格式來輸出,同樣會去掉 ##,例如:
Print #17:30:50# PM 05:30:50 時間的輸出也一律使用系統的時間格式,並且去掉##

23 系統的時間格式(1) 同樣是 #17:50:30#,可能有些人的機器輸出了「17:50:30」,但也可能有些人的機器輸出了「PM 05:50:30」,這是因為 VB 採用系統的時間格式來輸出資料,而系統的時間格式又可以使用以下方法來進行設定:

24 系統的時間格式(2) 以上圖為例,所設定的時間格式為 “tt hh:mm:ss”,所以 #17:50:30# 將會被輸出成「PM 05:50:30」。(註:時間格式中的 “tt” 表示以 AM 來表示上午、以 PM 來表示下午)

25 時間的注意事項 ‘0 時’ VB 將它表示成 #12:00:00 AM#,而 ‘12 時’ 則是 #12:00:00 PM#,所以:
Print #0:30:0# AM 12:30:00 Print #12:00:00# PM 12:00:00 時間的表示法中也可以把日期涵蓋進來,例如 #1997/2/28 5:03:00 PM# 即表示1997年2月28日, 下午5點零3分。

26 在 Windows 98 中,設定00~99時序的方法如下:

27 5-2 串接運算

28 布林資料 布林資料指的是「真」與「假」的集合,又稱「真假資料」。 「真」以 True 表示,「假」以 False 表示。
布林資料常用來代表一個條件式的成立與否,例如: ? 2 > 1 ' 利用即時運算視窗詢問 VB:「2 > 1嗎?」 True ' VB 回答:「真的」 ? 2 < 1 ' 再問:「2 < 1 嗎?」 False ' VB 回答:「假的」

29 字串與字串的串接 字串與字串的串接就是把兩個字串連接成為一個新的字串,其運算符號是加號 ‘+’。例如:
First = "Peter" Last = "Wang" Print First + " " + Last Peter Wang

30 串接運算的注意事項 ‘+’ 號用在字串與字串之間叫做「串接運算」,用在數值與數值之間叫做「算術運算」,例如:
? ' 算術運算 70 ? "50" + "20" ' 串接運算 5020

31 各種類型資料的串接 ‘&’是串接用的運算符號,在 ‘各種類型資料’ 的串接
S1 = "Today is " D = #8/24/97# S2 = S1 & D ' 字串與日期的串接 Print S2 Today is 1997/8/24 Print “12345.” & 678 ‘ 字串與數值串接後,直接印出 Print 678 & ‘ 數值與數值的串接 X = "VB" ' 錯誤!'+' 號只能用來串接字串與字串

32 5-3 比較運算

33 比較運算 比較 ‘運算符號’ 兩邊的數值後,傳回 True 或 False 比較運算符號 相當於數學上的 使 用 例 =
> 1 > 2 傳回 False < 1 < 2 傳回 True >= 或 => 1 >= 2傳回 False <> 或 >< 1 <= 2傳回 True 1 <> 2傳回 True

34 比較運算 – 例子 Print 1 > 2 False B = 1 <> 2 Print B True

35 日期時間的比較(1) 時間的比較,後面的時間大於前面的時間: #9:30# 大於 #8:30#
時間的比較,後面的時間大於前面的時間: #9:30# 大於 #8:30# 但 #12:00:00 AM# 被視為 ‘0 時’,而 #12:00:00 PM# 被視為一天的中午 12 時,所以: #12:30:00 PM# 小於 #1:00:00 PM# 日期的比較中,後面的日期大於前面的日期: #1997/7/1# 大於 #1997/1/1# 00~99年表示2000~2029及1930~1999年,所以:#97/1/1# 大於 #1899/12/31#。

36 日期時間的比較(2) 同時涵蓋日期及時間的比較中,先比較日期再比較時間,例如:
#97/1/1 0:00:00# 大於 #96/12/31 23:59:59# #97/1/1 3:00:00# 大於 #97/1/1 0:00:00# 如果一方有日期,一方沒有日期,則將沒有日期那一方的日期視為 #1899/12/30#,例如 #0:00:00# 相當於 #1899/12/30 0:00:00#,所以: #0:00:00# 大於 #1899/12/29 23:59:59# 如果一方有時間,一方沒有時間,則將沒有時間那一方的時間視為 #0:00:00#,所以: #97/1/1# 小於 #97/1/1 0:0:1#

37 字串的比較 比較的依據是字元的字元碼 。 比較方式是從每個字串的第一個字元開始依次比較其字元碼,直到比較出大小為止。
如果未比較出大小,而某一個字串已先達到最後一個字元,則長度較小的字串小於長度較大的字串。

38 知道字元碼的方法 英文範圍(0~127)內的字元:利用即時運算視窗執行 ? ASC("字元")。
中文字(包含兩個 byte):利用即時運算視窗執行 ? ASC(“中文字”) 。 例如: ? ASC("A") 65 ' 字元 A 的字元碼等於 65 ? ASC("B") 66 ' 字元 B 的字元碼大於 A ? ASC("程") ' 中文字 '程' 的字元碼等於46459

39 判斷出字元的大小的規則 英文字母順序在前者,其字元碼較小,例:"a" < b"。
小寫字母 "大於" 大寫英文字母,例:"a" > "A"。 數字 "小於" 英文字母,例:"2" < "A"。 中文字 "大於" 英文字母,例:"程" > "a"。  數字字元<英文大寫字母<英文小寫字母<中文字 Print "kg" > "KG" True Print "COPY" < "COPYRIGHT" Print "ANGEL" < "ANGLE" Print "3-ANGEL" > "ANGLE" False Print "中文" > "English"

40 5-4 邏輯運算

41 邏輯運算 運算符號 使用例 功 能 說 明 Not Not A 反 A 若 A 為 True, 則 Not A 為 False And
功 能 說 明 Not Not A 反 A 若 A 為 True, 則 Not A 為 False And A And B A 且 B 只有當 A 及 B 同時為 True 時, 其結果方為 True, 否則為 False Or A Or B A 或 B 只要 A 或 B 為 True, 其結果便為 True

42 真值表 :T 代表 True,F 代表 False
B Not A A And B A Or B T F Print True Or False True Print 4 > 3 And 1 > 4 False 4 > 3 And 1 > 4 =True And False =False

43 邏輯運算的對象 Not 2 > 1 Not 是以 2 > 1 這個比較運算式作為 運算的對象
Not 2 > 1 先求比較運算式的結果, = Not True 再進行邏輯運算 = False

44 綜合運算 -1 優先順序 運算符號 1 算術運算符號 ^ (指數運算) 2 - (負數運算) 3 *,/ (乘、除運算) 4
^ (指數運算) 2 - (負數運算) 3 *,/ (乘、除運算) 4 \ (整數除法) 5 Mod (模數運算) 6 +,- (加、減運算)

45 綜合運算 -2 優先順序 運算符號 2 字串運算符號,+ 及 & 的優先順序相同 3 比較運算符號,其優先順序皆相同 4 邏輯運算符號 1
Not (反) And (且) Or (或) Xor (互斥) 5 Eqv (相等) 6 Imp (包含)

46 算術運算<優先於>字串運算<優先於>比較運算<優先於>邏輯運算
所以這個運算式: 20 >= 10 And 3^2 <= 3*2 算術運算,最優先 = 20 >= 10 And 9 <= 6 比較運算,次之 = True And False 邏輯運算,最後 = False

47 同一運算式中有優先順序相同的運算符號時,則運算順序是自左而右
12 / 3 * 2 = 4 * 2 = 8 如果我們想改變運算順序,可以使用左右括弧 12 / (3 * 2) = 12 / 6 = 2


Download ppt "新觀念的 VB6 教本 第5章 資料與運算."

Similar presentations


Ads by Google