570 likes | 698 Views
第三章. 組成敘述的要素. 3-1 識別字. 程式 (Program) 是由一行行的 敘述 所成的集合。 敘述( statement )是程式中可執行的最小單元。 敘述 基本是由 識別字、保留字、特殊符號、資料、 變數、常數、運算式 … 等所組合而成的。 在真實世界,為方便識別,對每個人、事和物都會 賦予一個名字。 同樣使用程式語言設計程式時,對程式中所用到的每個 變數、常數、結構、模組、函式、程序、類別、物件及 屬性等,使用前必須先命名,將這些在程式中被命名的 名字稱為「識別字」 (Identifier) 。 「識別字」就是指可自行定義或宣告的文數字。.
E N D
第三章 組成敘述的要素
3-1 識別字 • 程式 (Program)是由一行行的 敘述 所成的集合。 • 敘述(statement)是程式中可執行的最小單元。 • 敘述 基本是由 識別字、保留字、特殊符號、資料、變數、常數、運算式…等所組合而成的。 • 在真實世界,為方便識別,對每個人、事和物都會賦予一個名字。 • 同樣使用程式語言設計程式時,對程式中所用到的每個變數、常數、結構、模組、函式、程序、類別、物件及屬性等,使用前必須先命名,將這些在程式中被命名的名字稱為「識別字」(Identifier)。 • 「識別字」就是指可自行定義或宣告的文數字。
識別字命名規則: 1. 識別字第一個字元必須是以大小寫字母或底線(_)開頭。 2. 第二字元以後方可由字母、數字及底線(_)組成。 3. 識別字中間不得有空白字元。 4. 中文也可當識別字,但建議少用。 5. 識別字不宜太長,否則不易記且徒增鍵入的時間。 6. 識別字命名用有意義單字,程式語言所保留的識別字禁用。 7. 識別字由多個單字組成,中間加上底線(_)或 每個單字 開頭用大寫其他用小寫區隔,增可讀性。
合法識別字: a、score、RndNum、id_no、Super5、_test • 不合法識別字:7_up ‘ 不能由數字開頭$money ‘ 不能由$號開頭+sum ‘ 不能由加號開頭stud no ‘ 中間不能有空白a-b ‘ 中間不能用減號Mary&Tom ‘ 不能含&字號Sub ‘ Sub為VB 2008保留字
3-2 保留字 • 關鍵字 (Keyword)。 • 程式語言中已被定義識別字,不可重複賦予不同用途。 • If 當選擇敘述,在程式設計時不可將 If 當變數用。 • 下表是 VB 2008保留字,用法有一定的規範,撰寫程式時,出現在程式敘述內時會以藍色標示,以提醒使用者不可誤用。
3-3 特殊符號 • VB 2008 程式敘述中,有些字元符號,如:( )、_、:、‘、“、& …,在敘述中有特別用途,無法當識別字。 • 字元特殊符號有下列 10 種: 1. ( ) :小括號在函式、方法或事件處理程序名稱的後面,利用小括號 ( ) 來放置傳遞的參數。如: Private Sub Button1_Click(ByVal ……… ) Handles Button1.Click
2. _ :行接續符號 當一行敘述需分成兩行時,第一行最後一個字元後面空一格再加底線「_」,便可將一個敘述分成兩行。程式執行時將這兩行敘述視為一行敘述處理。 Private Sub Button1_Click(ByVal sender As Object, ByVal e As System. _ EventArgs) Handles Button1.Click 3. 合併敘述符號若程式中有連續的多行敘述都很短時,可透過冒號將兩行合併成一行,敘述間彼此以冒號隔開,可讀性高而且可縮短程式的長度。如:
4. ‘ :註解符號 使用註解符號目的是為方便日後閱讀及助憶。VB 編譯器在編譯時會忽略註解符號後面的文字。單引符號只能作註解用途,較長註解通常置於要說明敘述前一行,較短註解置於該行敘述後面。
5. “ :字串符號文數字資料被兩個雙引號 ” ” 頭尾括起稱為 字串。下列三個資料都屬於字串: “我愛Visual Basic 2008” 、 “abc” 、 “123” 6. & :字串連接符號要將兩個字串或數值合併成一個字串,在兩個字串或數值間插入一個字串連接符號『&』如: 3 + 5 8 3 & 5 “35” 3 & “號” “3號” "我愛 " & "VB 2008“ "我愛VB 2008"
7. :從屬符號每個物件都有屬性,程式中存取該物件屬性,在物件名稱和屬性名稱間插入一個從屬符號「.」即可。 格式 :物件名稱.屬性名稱 = 屬性值 如設定 Label1標籤控制項的 Text 屬性為 『我愛 VB 2008』 Label1.Text = "我愛 VB 2008" 8. # :日期時間符號 欲將日期或時間資料指定給日期資料型別變數時,前後要加「#」如 : Dim birthday As Date birthday = #9/1/2008 11:34:56 PM#
9. 算術運算子(符號)有 + (加)、- (減)、* (乘)、/ (除)、\ (整數除法)、^ (指數)、MOD (餘數)…等,如: sum = num1 + num2 10. 比較運算子(符號)有 = (等於)、<> (不等於)、< (小於)、> (大於)、<= (小於等於)、>= (大於等於)。比較結果:True 或 False
[例] 設 num1 和 num2 為整數變數,初值分別 設為10、20。
3-4 常值 • 用來指定給變數當「變數值」 • 或 指定給物件屬性當「屬性值」。 • 程式執行時,敘述中的每個常值,都會分配到記憶體空間來存放。 • VB 2008 常值包括:數值常值、字串常值、日期常值、布林常值、物件常值。
2.4.1 數值常值 一. 整數常值 • 整數常值由數字、+ (正)、- (負)所組成。 • 表示方式:二進制、八進制、十進制、十六進制 • 整數常值依表示的範圍可分類出 Byte、SByte、Short、Integer、Long…等資料型別,如下表所示:
二. 浮點數常值 • 浮點數常值是整數常值後面跟著小數點。 • 浮點數常值依有效範圍:Single、Double、Decimal…
三. 科學記號表示法 • Single 單精確度與 Double 雙精確度的資料型別為浮點數。 • 可表小數點的數字。 • 當 Single 資料型別的整數位數超過七位數,Double 資料型別超過15位數,兩者以科學記號表之。 • 科學記號表示方式:aE±c a:表示含小數數值,其範圍為 1≦a<10 E:代表底數10 c:代表10的指數值。若指數為正,前加「+」; 若指數為負,前加「-」號。
例 516000000 5.16 × 1085.16E+8 0.0000000516 5.16 × 10-85.16E-8 -516000000 -5.16 × 108-5.16E+8 -0.0000000516 -5.16 × 10-8-5.16E-8 下面舉例說明一些數值常值的表示方式: 23445 ‘ 為Integer型別的整數常值 2340000000000 ‘ 共13位數,為Long型別的整數常值 12.56 ‘ 有小數,為Single型別的精確度常值 6.02E+23 ‘ 為Single型別常值,即為 6.021023 -5.34E+230 ‘ 為Double型別常值,即為-5.3410230
2.4.2 字串常值 • 字串常值由一連串字元組成。 • 包括中文字、英文字母、空格、數字、特殊符號。 • 程式中,字串常值需用「“ ”」雙引號頭尾括起來。 • 字串常值細分: Char字元資料型別 String字串資料型別
例1 合法字串常值 “q”、“hello”、“h2345”、“Hi, my friend.”、 “VB 2008中文版“ 例2 合法字串常值 “12.56” ‘ 雙引號括起來屬字串常值,非數值 "12 + num" ‘ 雙引號括起來屬字串常值,非運算式
2.4.3 布林常值 • 日期常值可同時 指定日期和時間 僅指定日期或僅指定時間。 • 日期常值所佔的記憶體空間和可表示的範圍如下: #12:30:00 PM# ‘ 僅只指定時間 #12/3/2003# ‘ 僅只指定日期 #12/3/2003 12:45:00 PM# ‘ 同時指定日期及時間
2.4.5 物件常值 • 物件常值可包含任何型別的資料,屬不定型資料型別。 • 在變數使用上,物件資料型別的變數很好用。 • 它可存放任何型別的資料,因任何型別的資料都屬於物件型別。 • 物件常值所佔記憶體空間與可表示範圍:
3-5 變數(Variable) 2.5.1 變數 • 變數與常數都用來存放資料,而資料的內容就是常值。 • 變數用來暫時存放程式執行過程中所處理的中間結果。 • 程式執行時,可能需暫存其值,以方便程式做運算或比較。 • 大多數高階語言都使用變數來儲存這些值。 • 變數是為某個資料的運算而保留的記憶空間,以因應程式執行時,這個變數會在不同時間而擁有不同的值。
VB 每個變數使用前 需事先宣告,宣告同時需給予一個名稱,稱為 變數名稱。 賦予該變數一個資料型別,電腦會在記憶體配置該資料 型別大小的記憶空間來存放該變數內容。 • VB 變數可存放:字串、數值、日期時間…等型別的常值。 • 一個變數只能存放一個常值資料,被存放的資料稱變數值。 • 當一個變數被宣告後,設計者或系統可立即指定一個變數值給該變數,即所謂預設值。此變數的變數值: 可隨時重新指定(設定) 可透過運算結果來更改
2.5.2 變數名稱的命名規則 第一個字元需以字母字元或底線 (_)開頭。 第二個字元(含)後只能包含字母字元、十進位數字和 底線,其它字元不允許使用。 如以底線開頭,必須至少含有一個字母順序字元或 進位數字。建議少用中文字為宜。 長度不可超過 1023個字元。變數名稱可英文字母、 中文字、數字、底線「_」任意組合。 變數名稱中的英文字母是大小寫不分如:Grade、GRADE、grade視為相同的變數名稱。建議變數名稱儘量以小寫表示。 變數名稱不可取與關鍵字相同名稱,關鍵字在程式中以藍色字標示。
例1 合法變數 x、F4、MathScore、N2K3、分數、id_no、_num、A牌 例2 不合法變數B&Q、Good Luck、7up [注意] 宣告不合法變數名稱,在錯誤字元下方出現藍色波浪底線來標示,如下圖747為不合法字元,需更改為合法字元藍色波浪底線才會消失:
2.5.3 變數的資料型別 • 變數分成: 數值變數 字串變數 (String) 日期變數 (Date) 物件變數(Object) • 變數宣告時未設初值,數值預設值『0』,字串預設值為空字串『“”』。 • 數值變數細分為: 位元組變數(Byte) 短整數變數(Short) 整數變數(Integer) 長整數變數(Long) 單精確度變數(Single) 倍精確度變數(Double) 貨幣型別變數(Decimal)
2.5.4 變數的宣告方式 • VB 使用 Dim、Redim、Static、Public 等關鍵字配合As來宣告變數的資料型別。 • 宣告變數敘述:
2.5.5 如何設定變數的初值 • 變數宣告時未給予初值,系統會自動給予預設值。 • 數值變數,則預設值為0。 • 字元或字串變數預設值為空字元。 • 布林變數預設為 False。 • 日期變數 日期預設為1/1/0001時間預設為 12:00:00AM。 • 物件變數預設值為「未設定」。 • VB 在宣告變數同時可設定初值,方式: Dim score As Integer =90 • 將宣告和初值設定分開 Dim score As Integer score = 90
當程式執行時按 [確定] 鈕,將各變數的初值設定,分別顯示在Label1~Label4 標籤控制項上面。
Step1 建立輸出入介面 1. 新增專案並以 varTest 為新專案名稱。 2. 在表單內依輸出要求建立 Label1~Label4和 Button1 按鈕控制項:
step2分析問題 1. 由輸出結果可知:- num1 需設為整數變數- num2 需設為單精確變數- str1 和 name 設為字串變數以便做字串合併;- birthday 設為日期變數 2. 分別宣告各變數的資料型別 再陸續設定各變數指定初值 最後將初值分別指定給 Label1~Label4 標籤控制項 的 Text 屬性即能分別顯示到表單的標籤控制項上面 step3 編寫程式碼
FileName: varTest.sln 01 Public Class Form1 02 03 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System. _EventArgs) Handles Button1.Click 04 Dim num1 As Integer 05 num1 = 20 06 Label1.Text = num1 07 08 Dim num2 As Single 09 num2 = 123456789 10 Label2.Text = num2 11 12 Dim str1 As String 13 str1 = "哈囉!" 14 Dim name As String = "Mr. White" 15 Label3.Text = str1 & name 16 17 Dim birthday As Date 18 birthday = #9/11/2005 5:20:36 PM# 19 Label4.Text = birthday 20 End Sub 21 End Class
3-6 常數 (Constant) • 程式執行時,有些值在程式執行中,其值到程式結束前 都一直保持不變且重複出現。 • 可用一個有意義的常數名稱來取代這些不變的數字或 字串。 • 如:稅率、圓周率、…等、或常用的字串、日期。 • 常數與變數都有名稱,兩者性質不同。 • 在程式執行中,變數隨敘述指定常值而更改其變數值。 • 常數經過宣告,在整個程式中一直保有當初宣告所指定 的常數值。
常數名稱是用 Const 來宣告。 • 宣告同時即指定一個常值做為該常數的常數值。 • 使用常數可增加程式可讀性,閱讀程式時較能 體會出該常值的意義且維護程式時易修改。 Const PI 3.14 ‘ PI 表圓周率 Dim r As Integer ‘ r 表半徑 r = 10 Label.Text = “2 * PI * r = “& 2* PI *r ‘ 圓周長 = 2R
Step1 建立輸出入介面 1. 新增專案並以「Const」為新專案名稱。 2. 依輸出要求在表單內建立- Label1 ~ Label4標籤控制項- Button1按鈕控制項3. 分別設定相關屬性值。
Step2 分析問題 宣告 PI 為圓周率常數,並指定 3.14 為園周率常數值。 宣告radius為整數變數,並指定 100 為變數初值。 圓周長度 = 2 x PI x 半徑(radius) 將結果指定給Label3 的 Text 屬性,即顯示在 Label3 控制項上。 圓面積 = 圓周率 x 半徑(radius) x 半徑 結果指定給 Label4 的 Text 屬性,即顯示在 Label4控制項上。 Step3 編寫程式碼
Filename : const.sln 01 Public Class Form1 02 03 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click 04 Const PI As Single = 3.14 ‘ 宣告PI為常數名稱 05 Dim radius As Integer 06 radius = 100 07 Label1.Text = "1. 圓周率: " & PI 08 Label2.Text = "2. 半 徑: " & radius & "公分" 09 Label3.Text = "3. 圓周長: " & 2 * PI * radius & "公分" 10 Label4.Text = "4. 圓面積: " & PI * radius * radius & _ "平方公分" 11 End Sub 12 End Class
3-7 運算式(Expression) • 運算式由 運算元(operand)和運算子(operator)組成的式子。 y、2、5屬於運算元 + (加號) 和 * (乘號)是運算子 x是一個變數名稱。 = (等號)是一個指定運算子,會將等號右邊運算式 的結果指定給等號左邊的變數。 語法: 變數 = 運算式
3.7.1 算術運算式 • 算術運算式即為一般的數學計算式 • 運算結果為數值資料。
3.7.2 字串運算式 • 字串運算式是將不同字串資料或將字串與非字串資料 合併成一個字串的式子。 • 字串運算式運算子有: +運算子 和 & 運算子。 1. + 運算子- 可將兩個字串頭尾相連做字串合併。- 若兩個數值資料, + 運算子視為加法運算。 - 若兩個字串資料, + 運算子視為字串合併。
2. & 運算子: - & 運算子可合併不同資料型別,合併結果為字串資料 - 如合併的資料一個是數值,另一個是日期,必須使用& 運算子合併,合併結果為字串資料型別。
3.7.3 複合指定運算式 • x = x + 3 x += 3 在等號兩邊都有相同變數名稱,可採複合指定運算式 x += 3 來表示。 • x = x * 4 x *= 4 • 程式碼較精簡且增快執行速度。
3-8 其他 3.8.1 如何辨識資料型別 • 當顯示出一個常值時,可用 TypeName() 函式來得知 資料型別。
3.8.2 電腦可辨識哪些數字系統 • 電腦在內部作運算是以二進制為主。 • 二進制易造成程式閱讀與維護的不易。 • 導致八進制和十六進制的產生。 • 人類日常生活,習慣以十進制來做計數的工作,若能 以十進制來和電腦交談必能方便不少。 • 電腦可辨識數字系統有以上四種數字系統: 二進制 八進制 十進制 十六進制