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

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

ASP.NET 網頁製作教本 – 從基本語法學起
多樂一甲 謝佩臻 4A3K0009.
圓的一般式 內容說明: 由圓的標準式展出圓的一般式.
圓的一般式 內容說明: 由圓的標準式展出圓的一般式.
物件導向語言基礎 Chapter 4 認知 學完本章應了解何謂常數、變數。 了解有哪些運算式、運算子和基本輸入、輸出指令。
[聚會時, 請將傳呼機和手提電話關掉, 多謝合作]
第四章 數列與級數 4-1 等差數列與級數 4-2 等比數列與級數 4-3 無窮等比級數 下一頁 總目錄.
組員:蔡典龍4970E027 蕭積遠4970E026 王建智4970E050 李雅俐4970E025 賴品言4970E054
數字系統與資料表示法.
課程名稱:程式設計 授課老師:________
13 C++字串 字串與數值轉換函數 13.1 C++字串類別 建立C++字串 13-2
第3章 變數與運算子 3-1 電腦記憶體的基礎 3-2 變數的命名與宣告 3-3 VB.NET的資料型別
Visual C++ introduction
2-3 基本數位邏輯處理※.
第四章 流程控制(一) if,if-else 與 switch
4B冊 認識公倍數和最小公倍數 公倍數和最小公倍數的關係.
Java程式概觀.
生物資訊程式語言應用 Part 3 Perl Language.
SQL Stored Procedure SQL 預存程序.
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
數位邏輯 第2章數字系統 2-1數目系統 2-2數目系統的互換 2-3二進制有號數的加減運算 2-4文數字碼與同位偵錯碼.
第1章 單晶片微電腦概論.
新觀念的 VB6 教本 第 6 章 資料型別.
邏輯關係運算 == 等於 & 且 (logical and) ~= 不等於 | 或 (logical or) < 小於
耆康會長者中央議會 <<長者與社會參與>>計劃培訓
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
第一章 直角坐標系 1-1 數系的發展.
程式設計 博碩文化出版發行.
程式設計實習課(四) ----C 函數運用----
URL(Uniform Resource Locator)
第一單元 建立java 程式.
UpToDate Anywhere 設定方法
第三章 資料型態與輸出控制 本章學習目標 認識Matlab的基本資料型態 練習資料型態的轉換 學習如何控制Matlab的輸出格式
數學 近似值 有效數值.
小结 郭清溥.
雲端計算.
JAVA 程式設計 資訊管理系 - 網路組.
輸入&輸出 函數 P20~P21.
ASP基礎— VBScript基本語法 張森.
使用VHDL設計 七段顯示器 通訊工程系 一年甲班 姓名 : 蘇建宇 學號 : B
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
第一次Labview就上手 參考書籍: LabVIEW for Everyone (Jeffrey Travis/Jim Kring)
CH05. 選擇敘述.
大綱:加減法的化簡 乘除法的化簡 去括號法則 蘇奕君 台灣數位學習科技股份有限公司
挑戰C++程式語言 ──第8章 進一步談字元與字串
挑戰C++程式語言 ──第7章 輸入與輸出.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
函數應用(二)與自定函數.
6年級數學 方程式計算複習 巫鑛友老師製作 2003年4月13日.
11058: Encoding ★☆☆☆☆ 題組:Problem Set Archive with Online Judge
1.電腦數字系統介紹 2.電腦數字系統轉換 3.資料在電腦內部的表示法
選擇性結構 if-else… switch-case 重複性結構 while… do-while… for…
簡單Java介紹.
1-1 二元一次式運算.
數位邏輯 第2章數字系統 2-1數目系統 2-2數目系統的互換 2-3二進制有號數的加減運算 2-4文數字碼與同位偵錯碼.
1757: Secret Chamber at Mount Rushmore
( )下列何者正確? (A) 7< <8 (B) 72< <82 (C) 7< <8 (D) 72< <82 C 答 錯 對.
資料表示方法 資料儲存單位.
第三章 指數與對數 3-1 指數 3-2 指數函數及其圖形 3-3 對數 3-4 對數函數及其圖形 3-5 常用對數 回總目次.
4-1 變數與函數 第4章 一次函數及其圖形.
網頁設計第十二課.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Array(陣列) Anny
10303: How Many Trees? ★★☆☆☆ 題組:Contest Archive with Online Judge
Instructor:Po-Yu Kuo 教師:郭柏佑
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
InputStreamReader Console Scanner
Presentation transcript:

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

5-1 資料的表示法

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

整數 十進位的表示法:逗號是不能使用的,如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

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

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

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

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

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

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

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

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

日期時間資料 必須用 ## 括起來 #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

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

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

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

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

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

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

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

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

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

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

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

時間的注意事項 ‘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分。

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

5-2 串接運算

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

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

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

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

5-3 比較運算

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

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

日期時間的比較(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#。

日期時間的比較(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#

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

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

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

5-4 邏輯運算

邏輯運算 運算符號 使用例 功 能 說 明 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

真值表 :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

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

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

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

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

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