第 7 章 程序與函數 7-1 模組化程式設計 7-1 模組化程式設計 7-2 VB.NET 的程序與函數 7-2 VB.NET 的程序與函數 7-3 程序與函數的變數範圍 7-3 程序與函數的變數範圍 7-4 VB.NET 常用的內建函數 7-4 VB.NET 常用的內建函數 7-5 遞迴函數 7-5.

Slides:



Advertisements
Similar presentations
1 生物計算期末作業 暨南大學資訊工程系 2003/05/13. 2 compare f1 f2  只比較兩個檔案 f1 與 f2 ,比完後將結果輸出。 compare directory  以兩兩比對的方式,比對一個目錄下所有檔案的相 似程度。  將相似度很高的檔案做成報表輸出,報表中至少要.
Advertisements

Chapter 10 馬可夫鏈 緒言 如果讀者仔細觀察日常生活中所發生的 諸多事件,必然會發現有些事件的未來 發展或演變與該事件現階段的狀況全然 無關,這種事件稱為獨立試行過程 (process of independent trials) ;而另一些 事件則會受到該事件現階段的狀況影響。
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
第七章 抽樣與抽樣分配 蒐集統計資料最常見的方式是抽查。這 牽涉到兩個問題: 抽出的樣本是否具有代表性?是否能反應出母體的特徵?
學習C++的基本語法 認識關鍵字與識別字的不同 學習程式碼偵錯的流程 學習如何提高程式的可讀性
:Word Morphing ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10508:word morphing 解題者:楊家豪 解題日期: 2006 年 5 月 21 日 題意: 第一行給你兩個正整數, 第一個代表下面會出現幾個字串,
Section 1.2 Describing Distributions with Numbers 用數字描述分配.
3Com Switch 4500 切VLAN教學.
Reference, primitive, call by XXX 必也正名乎 誌謝 : 部份文字取於前輩 TAHO 的文章.
What is static?. Static? 靜態 ? class Test { static int staticX; int instanceX; public Test(int var1, int var2) { this.staticX = var1; this.instanceX =
指導教授:陳淑媛 學生:李宗叡 李卿輔.  利用下列三種方法 (Edge Detection 、 Local Binary Pattern 、 Structured Local Edge Pattern) 來判斷是否為場景變換,以方便使用者來 找出所要的片段。
Review of Chapter 3 - 已學過的 rules( 回顧 )- 朝陽科技大學 資訊管理系 李麗華 教授.
建立靜態資料成員 關鍵字: static 靜態資料成員不屬於特定物件,而是該類物件 所共同擁有的,可做為類別範圍裡的靜態變數。
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
第一章 變數、常數及資料型態. 變數 C 程式語言的變數名稱 第一個字必須是英文字母或底線 (_) 之後可以是數字, 英文字母或底線 (_) 不可以是保留字 例: Num (Ο) _score (Ο) C&C (X) 8num (X)
STAT0_sampling Random Sampling  母體: Finite population & Infinity population  由一大小為 N 的有限母體中抽出一樣本數為 n 的樣 本,若每一樣本被抽出的機率是一樣的,這樣本稱 為隨機樣本 (random sample)
第 13 章 常數、靜態成員與朋友關 係 13-1 常數物件與成員 13-1 常數物件與成員 13-2 物件成員與巢狀類別 13-2 物件成員與巢狀類別 13-3 靜態成員資料與函數 13-3 靜態成員資料與函數 13-4 朋友關係 13-4 朋友關係.
1. 假設以下的敘述為一未提供 “ 捷徑計算 ” 能力的程式段,試用程 式設計的技巧,使此敘述經此改 寫的動作後,具有與 “ 捷徑計算 ” 之 處理方法相同之處理模式。 if and then E1 else E2 endif.
第 18 章 名稱空間與例外處理 18-1 名稱空間 18-1 名稱空間 18-2 例外處理 18-2 例外處理.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 貳 研究設計.
Chapter 13 塑模靜態觀點:物件圖 Static View : Object Diagram.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
: The largest Clique ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11324: The largest Clique 解題者:李重儀 解題日期: 2008 年 11 月 24 日 題意: 簡單來說,給你一個 directed.
第 6 章 迴圈結構 6-1 計數迴圈 6-1 計數迴圈 6-2 條件迴圈 6-2 條件迴圈 6-3 巢狀迴圈 6-3 巢狀迴圈 6-4 While/End While 迴圈 6-4 While/End While 迴圈 6-5 跳出與繼續迴圈 6-5 跳出與繼續迴圈 6-6 錯誤處理 6-6 錯誤處理.
Matlab Assignment Due Assignment 兩個 matlab 程式 : Eigenface : Eigenvector 和 eigenvalue 的應用. Fractal : Affine transform( rotation, translation,
Chapter 20 塑模動態觀點:狀態圖 Statechart Diagram. 學習目標  說明狀態圖的目的  定義狀態圖的基本記號  展示狀態圖的建構  定義活動、內部事件及遞延事件的狀態 圖記號.
: Happy Number ★ ? 題組: Problem Set Archive with Online Judge 題號: 10591: Happy Number 解題者:陳瀅文 解題日期: 2006 年 6 月 6 日 題意:判斷一個正整數 N 是否為 Happy Number.
第12章 建立多表單與模組的應用程式 12-1 Visual Basic的方案與專案 12-2 模組化Visual Basic應用程式
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 參 資料蒐集的方法.
第 10 章 視窗應用程式的工具列與 功能表 10-1 主功能表控制項 10-1 主功能表控制項 10-2 快顯功能表控制項 10-2 快顯功能表控制項 10-3 工具列控制項 10-3 工具列控制項 10-4 狀態列控制項 10-4 狀態列控制項 10-5 字型與色彩對話方塊 10-5 字型與色彩對話方塊.
資料庫程式設計與系統管理 SQL Server 2005 Express 第六章 進階資料庫設計.
: Ahoy, Pirates! ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11402: Ahoy, Pirates! 解題者:李重儀 解題日期: 2008 年 8 月 26 日 題意:有一個海盜島有 N 個海盜,他們的編號 (id)
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
第 13 章 檔案與資料夾處理 13-1 檔案與資料夾操作 13-1 檔案與資料夾操作 13-2 循序檔案的文字檔案讀寫 13-2 循序檔案的文字檔案讀寫 13-3 隨機檔案的處理 13-3 隨機檔案的處理 13-4 二進位檔案的讀寫 13-4 二進位檔案的讀寫 13-5 檔案對話方塊 13-5 檔案對話方塊.
資料結構實習-一 參數傳遞.
6-2 認識元件庫與內建元件庫 Flash 的元件庫分兩種, 一種是每個動畫專 屬的元件庫 (Library) ;另一種則是內建元 件庫 (Common Libraries), 兩者皆可透過 『視窗』功能表來開啟, 以下即為您說明。
第 5 章 選擇控制項與條件敘述 5-1 結構化程式設計 5-1 結構化程式設計 5-2 關係與邏輯運算子 5-2 關係與邏輯運算子 5-3 簡單的條件敘述 5-3 簡單的條件敘述 5-4 選擇控制項 5-4 選擇控制項 5-5 巢狀條件敘述 5-5 巢狀條件敘述 5-6 多選一條件敘述 5-6 多選一條件敘述.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.
Section 4.2 Probability Models 機率模式. 由實驗看機率 實驗前先列出所有可能的實驗結果。 – 擲銅板:正面或反面。 – 擲骰子: 1~6 點。 – 擲骰子兩顆: (1,1),(1,2),(1,3),… 等 36 種。 決定每一個可能的實驗結果發生機率。 – 實驗後所有的實驗結果整理得到。
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
: GCD - Extreme II ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11426: GCD - Extreme II 解題者:蔡宗翰 解題日期: 2008 年 9 月 19 日 題意: 最多 20,000 組測資,題目會給一個數字.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
Chapter 2. Recurrence Relations (遞迴關係)
Structural Equation Modeling Chapter 6 CFA 根據每個因素有多重指標,以減少 測量誤差並可建立問卷的構念效度 驗證性因素分析.
第 17 章 樣板 17-1 樣板的基礎 17-1 樣板的基礎 17-2 樣板函數 17-2 樣板函數 17-3 樣板類別 17-3 樣板類別 17-4 非型態參數的樣板類別 17-4 非型態參數的樣板類別 17-5 樣板類別的繼承 17-5 樣板類別的繼承 17-6 特化樣板與靜態成員 17-6 特化樣板與靜態成員.
Chapter 10 m-way 搜尋樹與B-Tree
第12章 多重表單與模組的應用程式 12-1 VB.NET的方案與專案 12-2 模組化VB.NET應用程式 12-3 多重表單的應用程式
概念性產品企劃書 呂學儒 李政翰.
Probability Distribution 機率分配 汪群超 12/12. 目的:產生具均等分配的數值 (Data) ,並以 『直方圖』的功能計算出數值在不同範圍內出現 的頻率,及繪製數值的分配圖,以反應出該 機率分配的特性。
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號
第 6 章 迴圈結構 6-1 計數迴圈 6-1 計數迴圈 6-2 條件迴圈 6-2 條件迴圈 6-3 巢狀迴圈 6-3 巢狀迴圈 6-4 While/End While 迴圈 6-4 While/End While 迴圈 6-5 跳出迴圈 6-5 跳出迴圈 6-6 VB.NET 的錯誤處理 6-6 VB.NET.
函式 Function 東海大學物理系‧資訊教育 施奇廷. 函式簡介 當程式越來越大、越複雜時,程式的維護、 除錯會變得更困難,此時必須引入函式來 簡化程式或將程式分段,將程式重複的部 分改寫為函式,將程式「模組化」 這種作法有下列優點:節省程式發展的時 間、邏輯容易瞭解、程式容易除錯、可分 工合作完成程式.
Visual C++重點複習.
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2008.
第 5 章 選擇控制項與條件敘述 5-1 結構化程式設計 5-1 結構化程式設計 5-2 關係與邏輯運算子 5-2 關係與邏輯運算子 5-3 簡單的條件敘述 5-3 簡單的條件敘述 5-4 選擇控制項 5-4 選擇控制項 5-5 巢狀條件敘述 5-5 巢狀條件敘述 5-6 多選一條件敘述 5-6 多選一條件敘述.
11 Ch05 遞迴 淡江大學 周清江 1. 2  遞迴函數乃是一個自己反覆呼叫自己的函數  一個典型的遞迴演算法 n! = n * (n-1)! = n * (n-1) * (n-2)! = n * (n-1) * (n-2) * (n-3)! = … = n * (n-1) * (n-2)
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
Microsoft Excel.
Introduction to Java Programming Lecture 16 Super and Sub Classes.
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
幼兒行為觀察與記錄 第八章 事件取樣法.
1 Introduction to Java Programming Lecture 3 Mathematical Operators Spring 2009.
CH 14-可靠度工程之數學基礎 探討重點 失效時間之機率分配 指數模式之可靠度工程.
McGraw-Hill/Irwin © 2003 The McGraw-Hill Companies, Inc.,All Rights Reserved. 肆 資料分析與表達.
Presentation transcript:

第 7 章 程序與函數 7-1 模組化程式設計 7-1 模組化程式設計 7-2 VB.NET 的程序與函數 7-2 VB.NET 的程序與函數 7-3 程序與函數的變數範圍 7-3 程序與函數的變數範圍 7-4 VB.NET 常用的內建函數 7-4 VB.NET 常用的內建函數 7-5 遞迴函數 7-5 遞迴函數

7-1 模組化程式設計 模組的基礎 模組的基礎 程序函數是一個黑盒子 程序函數是一個黑盒子

7-1 模組化程式設計 目前軟體系統或應用程式的功能愈來愈強 大,使用者的需求也水漲船高,從前一個 人可以寫出的試算表程式,幾個人開發的 UNIX 系統將成為神話,模組化程式設計在 應用程式開發上也就愈顯其重要性。 目前軟體系統或應用程式的功能愈來愈強 大,使用者的需求也水漲船高,從前一個 人可以寫出的試算表程式,幾個人開發的 UNIX 系統將成為神話,模組化程式設計在 應用程式開發上也就愈顯其重要性。

7-1-1 模組的基礎 現在的軟體系統或應用程式都需要大量的 人員參與分析、設計與開發,因此將一個 大型應用程式所需的功能分割成一個個獨 立的子功能,就成為非常重要的工作。 現在的軟體系統或應用程式都需要大量的 人員參與分析、設計與開發,因此將一個 大型應用程式所需的功能分割成一個個獨 立的子功能,就成為非常重要的工作。 模組化是把大型的功能切割成無數的子功 能,至於如何切割成一個個子功能的模組, 就屬於結構化分析的範疇,我們最常使用 的就是由上而下設計方法。 模組化是把大型的功能切割成無數的子功 能,至於如何切割成一個個子功能的模組, 就屬於結構化分析的範疇,我們最常使用 的就是由上而下設計方法。

7-1-2 程序函數是一個黑盒子 程序函數是一個程式區塊,我們執行程序函數時 稱為呼叫( Subroutines Call ),在呼叫時並不 需要了解程序函數內部實際的程式碼,只要告訴 我們如何使用這個黑盒子的「使用介面」 ( Interface )即可,如下圖所示: 程序函數是一個程式區塊,我們執行程序函數時 稱為呼叫( Subroutines Call ),在呼叫時並不 需要了解程序函數內部實際的程式碼,只要告訴 我們如何使用這個黑盒子的「使用介面」 ( Interface )即可,如下圖所示:

7-2 VB.NET 的程序與函數 建立 Sub 程序 建立 Sub 程序 建立 Function 函數 建立 Function 函數 擁有參數的程序與函數 擁有參數的程序與函數 傳值或傳址呼叫程序與函數 傳值或傳址呼叫程序與函數 強迫跳出程序與函數 強迫跳出程序與函數

7-2 VB.NET 的程序與函數 - 種類 VB.NET 的程序可以分為兩種, 如下所示: VB.NET 的程序可以分為兩種, 如下所示: 事件處理程序:事件處理程序是處理指定事件 的程序(一定是 Sub ,因為不會有傳回值), Windows 應用程式都是使用 Click 事件處理程 序執行所需的功能。 事件處理程序:事件處理程序是處理指定事件 的程序(一定是 Sub ,因為不會有傳回值), Windows 應用程式都是使用 Click 事件處理程 序執行所需的功能。 一般程序:將程式區塊使用一個程序函數名稱 來代替,以便呼叫程序函數執行特定的功能, VB.NET 的程序分為 Sub 程序和 Function 函數 兩種,函數和程序的差別在於函數擁有傳回值, 而程序沒有。 一般程序:將程式區塊使用一個程序函數名稱 來代替,以便呼叫程序函數執行特定的功能, VB.NET 的程序分為 Sub 程序和 Function 函數 兩種,函數和程序的差別在於函數擁有傳回值, 而程序沒有。

7-2-1 建立 Sub 程序 - 語法 Sub 程序就是一個程式區塊的 VB.NET 程式 碼,使用 Sub 和 End Sub 指令包圍,然後 以一個程序名稱命名,程序並沒有傳回值。 Sub 程序就是一個程式區塊的 VB.NET 程式 碼,使用 Sub 和 End Sub 指令包圍,然後 以一個程序名稱命名,程序並沒有傳回值。 VB.NET 程序的語法,如下所示: VB.NET 程序的語法,如下所示: [Public | Private] Sub 名稱 程式區塊 程式區塊 End Sub

7-2-1 建立 Sub 程序 - 範例 程序名稱的命名和變數名稱相同,在同一 個模組不能使用相同的程序名稱。一個程 序的範例,如下所示: 程序名稱的命名和變數名稱相同,在同一 個模組不能使用相同的程序名稱。一個程 序的範例,如下所示: Sub ShowMessage() lblOutput.Text = "VB.NET 程式設計 " lblOutput.Text = "VB.NET 程式設計 " End Sub 上述程式碼是 ShowMessage 程序,因為 它並沒有傳回值。 上述程式碼是 ShowMessage 程序,因為 它並沒有傳回值。

7-2-1 建立 Sub 程序 - 呼叫 在程式碼呼叫程序是使用 Call 指令,只需在 其後加上程序名稱即可,如下所示: 在程式碼呼叫程序是使用 Call 指令,只需在 其後加上程序名稱即可,如下所示: Call ShowMessage() 上述程序呼叫因為程序沒有參數可以省略 括號,不使用 Call 指令也可以,如下所示: 上述程序呼叫因為程序沒有參數可以省略 括號,不使用 Call 指令也可以,如下所示:ShowMessage

7-2-2 建立 Function 函數 - 語法 Function 函數類似 Sub 程序只是改為 Function 和 End Function 包圍,其主要的 差異是函數擁有傳回值。 Function 函數類似 Sub 程序只是改為 Function 和 End Function 包圍,其主要的 差異是函數擁有傳回值。 VB.NET 函數的語法,如下所示: VB.NET 函數的語法,如下所示: [Public | Private] Function 名稱 [As 資料型別 ] 程式區塊 程式區塊 Return 值 | 名稱 = 值 Return 值 | 名稱 = 值 End Function

7-2-2 建立 Function 函數 - 範例 函數的範例,如下所如下所示: 函數的範例,如下所如下所示: Function One2Ten() Dim intI, intTotal As Integer Dim intI, intTotal As Integer For intI = 1 To 10 For intI = 1 To 10 IntTotal = intTotal + intI IntTotal = intTotal + intI Next intI Next intI Return intTotal Return intTotal End Function 上述 One2Ten 函數是從 1 加到 10 ,最後結果是變 數 intTotal ,使用 Return 指令傳回最後的結果。 上述 One2Ten 函數是從 1 加到 10 ,最後結果是變 數 intTotal ,使用 Return 指令傳回最後的結果。

7-2-2 建立 Function 函數 - 呼叫 因為函數擁有傳回值,通常都是在指定敘 述中執行呼叫,並且是在指定敘述的右邊 呼叫,如下所示: 因為函數擁有傳回值,通常都是在指定敘 述中執行呼叫,並且是在指定敘述的右邊 呼叫,如下所示: lblOutput.Text = One2Ten() 上述 lblOutput 標籤控制項的 Text 屬性指定 成函數的傳回值。 上述 lblOutput 標籤控制項的 Text 屬性指定 成函數的傳回值。

7-2-3 擁有參數的程序與函數 - 語法 在 VB.NET 建立擁有參數的程序與函數,其語法 如下所示: 在 VB.NET 建立擁有參數的程序與函數,其語法 如下所示: [Public|Private] [Sub|Function] 名稱 ( 參數 1, 參數 2, ….) 程式區塊 程式區塊 [Return 值 | 名稱 = 值 ] [Return 值 | 名稱 = 值 ] End [Sub | Function] 上述括號中的參數稱為「正式參數」( Formal Parameters )或「假的參數」( Dummy Parameters ),正式參數是識別字 。 上述括號中的參數稱為「正式參數」( Formal Parameters )或「假的參數」( Dummy Parameters ),正式參數是識別字 。

7-2-3 擁有參數的程序與函數 - 範例 擁有參數的程序,如下所示: 擁有參數的程序,如下所示: Sub ShowMessage(strMsg As String) lblOutput.Text = strMsg lblOutput.Text = strMsg End Sub 擁有參數的函數,如下所示: 擁有參數的函數,如下所示: Function N2N(intBegin As Integer, intEnd As Integer) Dim intI, intTotal As Integer Dim intI, intTotal As Integer For intI = intBegin To intEnd Step 1 For intI = intBegin To intEnd Step 1 IntTotal = intTotal + intI IntTotal = intTotal + intI Next intI Next intI Return intTotal Return intTotal End Function

7-2-3 擁有參數的程序與函數 - 呼叫 如果程序和函數有傳入參數,在呼叫時可以指定 不同的參數值,擁有參數的程序呼叫,如下所示: 如果程序和函數有傳入參數,在呼叫時可以指定 不同的參數值,擁有參數的程序呼叫,如下所示: Call ShowMessage("VB.NET 程式設計 ") 上述程式碼在呼叫時傳入一個字串,也可以使用 變數,呼叫的參數稱為「實際參數」( Actual Parameters ),這就是參數值,需要和正式參 數定義的資料型別相同,每一個正式參數都需要 對應一個同型別的實際參數。 上述程式碼在呼叫時傳入一個字串,也可以使用 變數,呼叫的參數稱為「實際參數」( Actual Parameters ),這就是參數值,需要和正式參 數定義的資料型別相同,每一個正式參數都需要 對應一個同型別的實際參數。

7-2-4 傳值或傳址呼叫程序與函 數 - 說明

7-2-4 傳值或傳址呼叫程序與函 數 - 範例 VB.NET 程序函數預設是使用傳值呼叫,如下所 示: VB.NET 程序函數預設是使用傳值呼叫,如下所 示: ' 傳值程序 Sub SubB(ByVal C As Integer) ….. ….. End Sub 只有傳址的程序或函數才需要特別指名 ByRef , 如下所示: 只有傳址的程序或函數才需要特別指名 ByRef , 如下所示: ' 傳址程序 Sub SubA(ByRef C As Integer) …. …. End Sub

7-2-5 強迫跳出程序與函數 如果在執行程序時需要中斷程序的執行, 可以使用跳出程序指令,如下所示: 如果在執行程序時需要中斷程序的執行, 可以使用跳出程序指令,如下所示: Exit Sub 當執行程序時,執行到上述指令就馬上離 開程序,如同結束程序執行。如果在執行 函數時需要中斷函數的執行,跳出函數使 用的指令,如下所示: 當執行程序時,執行到上述指令就馬上離 開程序,如同結束程序執行。如果在執行 函數時需要中斷函數的執行,跳出函數使 用的指令,如下所示: Exit Function

7-3 程序與函數的變數範圍 變數範圍 變數範圍 全域變數的應用 全域變數的應用

7-3-1 變數範圍 「變數範圍」( Scope )是當程式執行時,變數可以讓程序 或函數內或其它程式區塊存取的範圍,擁有 3 種範圍,如下: 「變數範圍」( Scope )是當程式執行時,變數可以讓程序 或函數內或其它程式區塊存取的範圍,擁有 3 種範圍,如下: 區塊範圍( Block Scope ):在 If/End If 、 Select Case/End Case 和 Do While/Loop 等程式區塊內使用 Dim 宣告的變數,變數只能在區塊內使用,在區塊之外的 程式碼並不能存取此變數。 區塊範圍( Block Scope ):在 If/End If 、 Select Case/End Case 和 Do While/Loop 等程式區塊內使用 Dim 宣告的變數,變數只能在區塊內使用,在區塊之外的 程式碼並不能存取此變數。 區域範圍( Local Scope ):在程序和函數內使用 Dim 宣告的變數,變數只能在程序或函數內使用,程序或函數 外的程式碼並無法存取此變數,稱為「區域變數」 ( Local Variables )。 區域範圍( Local Scope ):在程序和函數內使用 Dim 宣告的變數,變數只能在程序或函數內使用,程序或函數 外的程式碼並無法存取此變數,稱為「區域變數」 ( Local Variables )。 全域範圍( Global Scope ):如果變數是在標準模組 / 類別的 Module/ End Module 和 Class/End Class 中,在 程序和函數外以 Dim 或 Private 宣告,在該標準模組 / 類別 檔案的程序和函數都可以存取此變數,稱為「全域變數」 ( Global Variables )。 全域範圍( Global Scope ):如果變數是在標準模組 / 類別的 Module/ End Module 和 Class/End Class 中,在 程序和函數外以 Dim 或 Private 宣告,在該標準模組 / 類別 檔案的程序和函數都可以存取此變數,稱為「全域變數」 ( Global Variables )。

7-3-2 全域變數的應用 在程式的全域變數主要是用來儲存跨不同 程序 / 函數間的共用資料,或是在重複執行 程序時需要保留的資料。 在程式的全域變數主要是用來儲存跨不同 程序 / 函數間的共用資料,或是在重複執行 程序時需要保留的資料。 例如:在 VB.NET 建立票選系統,使用者只 需選取選項按鈕後,按下【投票】鈕就可 以參與票選,為了記錄各票選項目的投票 數和總投票數,我們就可以使用全域變數 記錄這些資料。 例如:在 VB.NET 建立票選系統,使用者只 需選取選項按鈕後,按下【投票】鈕就可 以參與票選,為了記錄各票選項目的投票 數和總投票數,我們就可以使用全域變數 記錄這些資料。

7-4 VB.NET 常用的內建函數 日期 / 時間函數 日期 / 時間函數 資料型別檢查函數 資料型別檢查函數 資料轉換函數 資料轉換函數 數學函數 數學函數

7-4-1 日期 / 時間函數

7-4-2 資料型別檢查函數

7-4-3 資料轉換函數

7-4-4 數學函數 - 亂數與四捨五入 函數

7-4-4 數學函數 -Math 類別的數學 常數

7-4-4 數學函數 -Math 類別的數學 方法 1

7-4-4 數學函數 -Math 類別的數學 方法 2

7-5 遞迴函數 遞迴函數的基礎 遞迴函數的基礎 遞迴的階層函數 遞迴的階層函數

7-5-1 遞迴函數的基礎 遞迴的基本定義,如下所示: 遞迴的基本定義,如下所示:一個問題的內涵是由本身所定義的話,稱之為遞迴。 當我們使用遞迴觀念所建立的函數稱為遞迴函數, 它是由上而下分析方法的一種特殊的情況,因為 子問題本身和原來問題擁有相同的特性,只是範 圍改變,範圍逐漸縮小到終止條件。所以可以歸 納出遞迴函數的 2 個特性,如下所示: 當我們使用遞迴觀念所建立的函數稱為遞迴函數, 它是由上而下分析方法的一種特殊的情況,因為 子問題本身和原來問題擁有相同的特性,只是範 圍改變,範圍逐漸縮小到終止條件。所以可以歸 納出遞迴函數的 2 個特性,如下所示: 遞迴函數在每次呼叫時,都可以使問題範圍逐漸的縮 小。 遞迴函數在每次呼叫時,都可以使問題範圍逐漸的縮 小。 函數需要擁有終止條件,以便結束遞迴函數的執行。 函數需要擁有終止條件,以便結束遞迴函數的執行。

7-5-2 遞迴的階層函數 階層的遞迴函數: 階層的遞迴函數: Function Factorial(ByVal N As Integer) If (N = 1) Then If (N = 1) Then Return 1 Return 1 Else Else Return N * Factorial(N - 1) Return N * Factorial(N - 1) End If End If End Function