1 / 47

新觀念的 VB6 教本

新觀念的 VB6 教本. 第5章 資料與運算. 5-1 資料的表示法. 資料的表示法. 數值資料 — 整數、實數、科學記號 字串資料 日期時間資料 布林資料. 整數. 十進位的表示法 : 逗號是不能使用的,如10,000 。 十六進位數的表示法 :前面加上 & H 八進位數的表示法 :前面加上 & 或 & O( 字母 O)

Télécharger la présentation

新觀念的 VB6 教本

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 5-1資料的表示法

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

  4. 整數 • 十進位的表示法:逗號是不能使用的,如10,000。 • 十六進位數的表示法:前面加上&H • 八進位數的表示法:前面加上 & 或 &O(字母O) 100 100的十進位表示法&H64 100的十六進位表示法&144 100的八進位表示法&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等均為正確的寫法。 • VB並沒有分數的表示法,不過我們可以用除號 ‘/’ 把分數的意義表達出來,例如把 寫成1/3 ,只是1/3經運算後得到的值為0.3333333,並不完全等於,這是電腦的限制,沒辦法的事情。

  9. 實數 -- 科學記號 • 一般科學記號表示法 說明9750000000 = 9.75×109將小數點左移9位,得到9.75,再乘以1090.00000056 = 5.6×10-7將小數點右移7位,得到5.6,再乘以10-7 • VB 使用算術運算符號表達,例如:9.75×109 表達成 9.75*10^95.6×10-7 表達成 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日 • 輸出時,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日): #2 28 97##97 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年不是閏年, 2月只有 28天#1997 年 7 月 1 日# 錯誤,中文日期

  19. 標準的時間表示法 • 標準的時間表示法是 #時:分:秒AM# 及 #時:分:秒PM#,其中 AM 表示上午,PM 表示下午,例如: • #9:30:00 AM# 表示 上午 9 點 30 分#7:55:30 PM# 表示 下午 7 點 55 分30 秒

  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 + " " + LastPeter Wang

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

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

  32. 5-3 比較運算

  33. 比較運算 比較 ‘運算符號’ 兩邊的數值後,傳回 True 或 False

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

  35. 日期時間的比較(1) • 時間的比較,後面的時間大於前面的時間:#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(“中文字”) + 65536。 • 例如: ? ASC("A") 65 ' 字元 A 的字元碼等於 65? ASC("B") 66 ' 字元 B 的字元碼大於 A? ASC("程") + 65536 46459 ' 中文字 '程' 的字元碼等於46459

  39. 判斷出字元的大小的規則 • 英文字母順序在前者,其字元碼較小,例:"a" < b"。 • 小寫字母 "大於" 大寫英文字母,例:"a" > "A"。 • 數字 "小於" 英文字母,例:"2" < "A"。 • 中文字 "大於" 英文字母,例:"程" > "a"。 數字字元<英文大寫字母<英文小寫字母<中文字

  40. 5-4 邏輯運算

  41. 邏輯運算

  42. 真值表:T 代表 True,F 代表 False Print True Or FalseTrue Print 4 > 3 And 1 > 4False 4 > 3 And 1 > 4=True And False=False

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

  44. 綜合運算 -1

  45. 綜合運算 -2

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

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

More Related