BLANK overview.

Slides:



Advertisements
Similar presentations
1 程式語言 Visual Basic 循序結構、選擇結構 黃瀧輝 老師 Long Hwai,Huang.
Advertisements

視窗應用程式表單的基本輸出入 資管系 助理教授 詹曉苓.
計算機程式及實習 期末報告 題目:超級猜一猜
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
Demo-dataSource與DropDownList
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
課程名稱:程式設計 授課老師:________
第四章 控制结构.
Visual Basic 2005學習範本 第5章 選擇結構.
課程名稱:程式設計 授課老師:________
高等医药院校药学类第三轮规划教材——大学计算机基础
第五章 数组.
四 VBScript编程基础.
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
CH10.
Visual Basic程序设计.
Chapter 1 複習.
CH11.
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
課程名稱:程式設計 授課老師:________
建立VB.NET應用程式 資管系 助理教授 詹曉苓.
第2章 建立Visual Basic應用程式 2-1 如何設計Visual Basic應用程式 2-2 建立主控台應用程式
第2章 建立Visual Basic應用程式.
Visual Basic 6.0 學習範本 第三章 基本資料型態.
第二章 Visual Basic语言基础.
.NET 程式設計入門(使用 C#) 講師:鄧智鴻.
第二章 C# 基础知识.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
Visual Basic程序设计 第七章 数组
1、数组的概念 2、静态数组 3、动态数组 4、数组的基本操作 5、控件数组
第3章 變數、資料型別與運算子.
程式語言 -Visual Basic 變數、常數與資料型態.
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
ASP动态网页设计实用教程 主讲教师: 开课单位:.
算法与程序设计.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
第4章 程序控制结构与算法基础.
計算機程式 廖文淵 Department of Computer Science and Engineering
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
Timer & Format.
第三章 流程控制與例外處理 資訊教育研究室 製作 注意:本投影片僅供上課使用,非經同意,請勿散播或轉載。
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
Visual Basic 程序设计 教师:王 杨 电话:
機器人-Robot Nobody 機器人.
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
第12章 VBA模块设计.
第3 章 VBScript的控制结构.
新觀念的 VB6 教本 第 6 章 資料型別.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
第三章 C# 基础知识.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
江西财经大学信息管理学院 《数据库应用》课程组2007
小结 郭清溥.
Visual Basic 程序设计教程.
Ch04 VB.NET的流程控制 網頁程式設計.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
第二章、第三章错题分析.
第6章 運算式與運算子 [算術與多功能計算機]
第四章 控制结构 1、顺序控制结构 2、选择结构 3、循环结构.
Presentation transcript:

BLANK overview

Visual Basic 2005 程式設計

Visual Basic 2005語言特色 簡單易學 功能強大 可開發Windows應用程式、Web應用程式、行動應用、Web Services、Windows Services、資料庫應用… 具有.NET Framework 2.0強大支持 完整支援物件導向程式設計架構

Demo-dataSource與DropDownList CH01 Demo-dataSource與DropDownList

程式該作的事情 輸入 處理 輸出 原始 資料 報表 (或其他) 資料庫 程式的核心部份在這裡

簡單的範例程式 0000: '定義兩個變數 0001: Dim a, b As Integer EX:CH1-1\CH1-1\Module1.vb 0000: '定義兩個變數 0001: Dim a, b As Integer 0002: '輸入:要求使用者在鍵盤上輸入一個數字,並且放到變數『a』當中 0003: a = InputBox("請輸入一個數字:") 0004: '運算:透過電腦計算出a 的平方值,並且放到變數『b』當中 0005: b = a * a 0006: '輸出:將變數中的值,顯示在螢幕上 0007: MsgBox(a & " 的平方為" & b)

現在,只要透過單一一個IDE環境即可完成 開發程式的步驟? 撰寫程式 進行編譯 進行連結 測試執行 除錯與修改 產生執行檔(.exe) 建立原始程式碼 (.vb) 轉換成.obj 現在,只要透過單一一個IDE環境即可完成

Visual Studio 2005 微軟提供的全方位開發環境 開發程式所需工具 整合式的開發環境(IDE) Visual Studio 2005 微軟提供的全方位開發環境 功能強大、支援各種運用、支援各種語言(C#、VB)、支援行動式裝置開發、支援各種資料庫、支援報表開發… Visual Basic 2005 書附光碟中的個人版開發工具 可完成絕大部分的程式設計需求、支援SQL Server 2005 Express資料庫 免費下載(http://www.microsoft.com/taiwan/vstudio/express/vb/download )

Visual Studio 2005的主要畫面 首頁 主選單(Alt + …) 線上資源 最近使用的專案

程式以專案為單位(檔案→新增專案) 有各種不同類型的專案可供選擇

專案類型 Windows應用程式:在Windows環境中執行的應用程式,可以使用所有.NET Framework中提供的使用者操作介面(GUI),這也是本書所專注討論的程式類型。(教材第5章之後的程式將採取此方式設計) 類別庫:類別庫是類別(Class)的集合,內含一個以上的類別。所謂的類別可視為共用的程式碼,程式設計師可以引用他人建立的類別以完成某種功能,而不需要自己撰寫程式碼,主要目的是希望程式碼可以重用(reuse)。 主控台應用程式:建立一個在『提示列模式』(Command-Line)執行的應用程式。某些程式不需要複雜的操作介面,只需要以文字模式的方式進行輸入和顯示,即可建立此種模式的應用程式,此模式中無法使用『使用者操作介面(GUI)』,因此畫面單調,但開發過程簡單,執行效率較高。( 教材1-4章中的程式將採取此方式設計)

專案類型 Windows控制項程式庫:『使用者操作介面(GUI)』中的每一個元件,稱之為控制項(例如按鈕、文字輸入方塊、月曆…等)。您可以利用這種類型的專案,來建立自己的控制項,建立好的控制項可讓其他開發人員用在『Windows應用程式』類型的專案中。 Web控制項程式庫:此類型的專案可以用來建立Web應用程式(ASP.NET)開發環境當中使用的Web控制項。 Windows服務:建立 Windows 服務的專案。 空專案:建立本機應用程式的空專案。 Crystal Report應用程式:Crystal Report是VS2005當中的報表開發工具,而Crystal Report應用程式專案則可用來開發以需要呈現出報表的應用程式。

以Visual Studio 2005開發程式的步驟? 在Visual Studio 2005中撰寫程式(VB或C#) 透過Visual Studio 2005進行測試與除錯 利用Visual Studio 2005編譯執行檔 部署(安裝)到其他機器上,供他人執行 使用者提出修改程式的需求

Demo-dataSource與DropDownList 建立主控台應用程式

建立主控台應用程式(在選單中選取『檔案→新增專案』)

建立主控台應用程式 程式碼其實是儲存在這個檔案裡 您可以將程式碼從這邊開始填入

主控台應用程式,只有黑底白字的樣式,沒有炫麗的Windows按鈕和視窗,但一樣可以運作 簡單的範例程式 EX: CH1-2\CH1-2\Module1.vb 0000: Sub Main() 0001: Dim a As Integer 0002: '顯示一段文字 0003: Console.Write("請輸入一個數字:") 0004: '要求使用者輸入,並儲存到變數a 0005: a = Console.ReadLine 0006: '換行 0007: Console.WriteLine() 0008: '計算並輸出 0009: Console.WriteLine(a & "的平方值為:" & a * a) 0010: '這一行是為了讓程式碼暫停不動,不要立刻結束 0011: Console.ReadKey() 0012: End Sub 主控台應用程式,只有黑底白字的樣式,沒有炫麗的Windows按鈕和視窗,但一樣可以運作

偵錯→開始偵錯

Demo-dataSource與DropDownList 建立Windows應用程式

建立主控台應用程式(在選單中選取『檔案→新增專案』)

建立主控台應用程式 這是一個表單(也就是視窗) 從工具箱中拖曳控制項到表單上 在表單上『 Double-Click』以切換到程式設計模式

建立主控台應用程式 整個表單和程式碼都儲存在這個位置 程式可以撰寫在其中

簡單的範例程式 當按鈕被按下時… EX: CH1-3\CH1-3\Form1.vb Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click MsgBox("哈囉~您好啊!!!") End Sub 跳出一個訊時視窗之意。 按下按鈕之後,就會執行我們上面撰寫的程式!!! 此即為:『事件驅動程式設計』

Demo-dataSource與DropDownList 專案儲存 Demo-dataSource與DropDownList

專案的儲存

方案總管 幾個主要的項目如下: 檢視屬性:點選該按鈕可以檢視目前表單的屬性(跳出屬性視窗) 。 顯示所有檔案 重新整理 切換至程式碼 切換至表單 類別圖表檢視 表單檔案 幾個主要的項目如下: 檢視屬性:點選該按鈕可以檢視目前表單的屬性(跳出屬性視窗) 。 顯示所有檔案:可以切換方案總管中是否要顯示所有檔案。 表單檔案:專案中的表單檔案以.vb作為附檔名。 重新整理:點選此按鈕可以在方案總管中重新整理所有檔案。 切換至程式碼:點選此按鈕可以切換至程式碼設計模式。 切換至表單:點選此按鈕可以切換至表單設計模式。 類別圖表檢視:以圖形化的方式檢視類別物件。

Demo-dataSource與DropDownList 習題 何謂IDE?在程式設計的過程當中,擔當何種角色? 主控台應用程式和Windows應用程式有何差異? 如何建立主控台應用程式和Windows應用程式? 怎麼執行程式? 程式的原始碼檔案是何種副檔名?可執行檔又是何種副檔名? Demo-dataSource與DropDownList

Demo-dataSource與DropDownList CH02 Demo-dataSource與DropDownList

使用者在程式(.exe)檔案上Double-Click 電腦怎麼執行我們撰寫出來的程式? 使用者在程式(.exe)檔案上Double-Click 從硬碟將程式(.exe)載入到記憶體 開始將電腦(的部分)主控權交給該程式 電腦開始依照程式的指令運作 程式依照需要,存取資料庫或是其他資源 資料庫 將運算結果顯示(列印)或保留在檔案中 結束,釋放記憶體等資源 Windows環境中,電腦如何執行我們撰寫的程式碼?

變數的功能與意義 電腦主要的功能就是運算,因此需要將外界的資訊輸入電腦,透過程式來進行運算。外界的資訊一進入電腦,首先會暫時儲存在記憶體中,而在程式碼裡面,我們所定義的『變數』,就擔當這樣的一個角色。 『變數』:可以在記憶體中暫時儲存資料,透過運算達成我們需要的結果。 程式中的每一個變數名稱,都指向一個相對應的記憶體位置,我們透過輸入設備(鍵盤、滑鼠、或其他裝置)將資料傳入電腦,程式碼接著就會將資料放入某個變數所指向的記憶體空間內。 此時如果電腦斷電,記憶體中的變數也跟著煙消雲散了,因此,需要長時間保存的資訊(或運算的結果),我們還會將其輸出到外界的儲存裝備中,例如:硬碟、USB隨身碟…等。

語法: 範例: 變數的定義 Dim + (使用者自訂的變數名稱) + As + 變數的型別 Dim number1 As Integer 宣告變數並且初始化 Dim number1 As Integer Dim number2 As Integer = 100

簡單的範例程式 0001: Dim A As Integer 0002: Dim B As Integer 定義三個整數變數 EX:CH2-4\CH2-4\Module1.vb 0001: Dim A As Integer 0002: Dim B As Integer 0003: Dim C As Integer 0004: '額外建立兩個變數 0005: Dim sum As Integer 0006: Dim avg As Single '請注意這個變數型別不同 0007: 0008: '輸入三個人的身高 0009: A = InputBox("請輸入A的身高:") 0010: B = InputBox("請輸入B的身高:") 0011: C = InputBox("請輸入C的身高:") 0012: '利用變數來作運算 0013: sum = A + B + C 0014: avg = sum / 3 定義三個整數變數 定義一個單精度浮點數 跳出視窗要求使用者輸入三個人身高 進行計算

簡單的範例程式 0015: '顯示 0016: Console.Write("身高總計:") EX:CH2-4\CH2-4\Module1.vb 0015: '顯示 0016: Console.Write("身高總計:") 0017: Console.WriteLine(sum) 0018: Console.Write("平均身高:") 0019: Console.WriteLine(avg) 0020: Console.ReadKey() Console.Write和WriteLine可以輸出一段文字在畫面上 等候使用者按鍵(讓程式稍微停一下)

變數在程式碼中的運算方式 將A+B+C運算後的結果,存放到sum變數當中。 sum = A + B + C (運算後的結果)

變數的型別: 變數型別 Visual Basic 型別 記憶體儲存空間 可儲存的數值範圍 續下頁… Boolean 視實作平台而定 True 或 False(Yes或No / 1 或 0) Byte 1 個位元組 0 至 255 (不帶正負號) Char (單一字元) 2 個位元組 0 至 65535 (不帶正負號) Date 8 個位元組 1 年 1 月 1 日 0:00:00 (午夜) 至 9999 年 12 月 31 日 11:59:59 PM Decimal 16個位元組 0 到 +/-79,228,162,514,264,337,593,543,950,335(無小數點) 0 到 +/-7.9228162514264337593543950335 (小數點右邊有 28 位數) Double (雙精度浮點數) -1.79769313486231570E+308 到 -4.94065645841246544E-324 † (負值), 4.94065645841246544E-324 到 1.79769313486231570E+308 † (正值) Integer 4 個位元組 -2,147,483,648 至 2,147,483,647 (帶正負號) 續下頁…

變數的型別: 變數型別 Visual Basic 型別 記憶體儲存空間 可儲存的數值範圍 Long (長整數) 8 個位元組 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 Object 32 位元平台上 4 個位元組 可以用 Object 型別之變數加以儲存的任何型別 64 位元平台上 8 個位元組 Sbyte 1 個位元組 -128 至 127 (帶正負號) Short (短整數) 2 個位元組 -32,768 至 32,767 (帶正負號) Single(單精度浮點數) 4 個位元組 -3.4028235E+38 到 -1.401298E-45 † (負值), 1.401298E-45 到 3.4028235E+38 † (正值) String (可變長度) 視實作平台而定 0 至大約二十億個 Unicode 字元 UInteger 0 至 4,294,967,295 (不帶正負號) ULong 0 到 18,446,744,073,709,551,615 (1.8...E+19 †) (不帶正負號) UShort 0 至 65,535 (不帶正負號)

每一種變數型態所使用到的記憶體空間有所不同,變數型別具有幾種意義: 變數型別的意義 每一種變數型態所使用到的記憶體空間有所不同,變數型別具有幾種意義: 讓電腦為不同的型別配置適當大小的記憶體,不要不敷使用,但也不要太浪費空間。 避免不同型別之間進行運算發生錯誤。

簡單的範例程式 0000: Dim str1 As String 0001: Dim str2 As String EX:CH2-4\CH2-4\Module1.vb 0000: Dim str1 As String 0001: Dim str2 As String 0002: Dim str3 As String 0003: 0004: str1 = "ABC" 0005: str2 = "DEF" 0006: str3 = str1 + str2 0007: 0008: Console.Write(str3) 請注意,在VB程式碼當中,以雙引號括住的,被視為文字 字串變數允許相加

簡單的範例程式 0000: Dim str1 As String 0001: Dim str2 As String EX:CH2-4\CH2-4\Module1.vb 0000: Dim str1 As String 0001: Dim str2 As String 0002: Dim str3 As String 0003: 0004: str1 = "ABC" 0005: str2 = "DEF" 0006: str3 = str1 / str2 0007: 0008: Console.Write(str3) 但是不允許相除

變數與運算子 運算元(變數) 運算子 變數 運算元(常數) C = A + 13

則表示把變數B的值取出,加上13之後放入A當中 那如果看到 A=A+100 則表示??? 變數與運算子 在程式碼中,我們看到 A=B 表示把變數B的值放入變數A當中,看到 A=B+13 則表示把變數B的值取出,加上13之後放入A當中 那如果看到 A=A+100 則表示??? 數學運算式的等號左右兩邊一定要相等,但是程式碼中的等號左右兩邊則不需相等,因為『等號』乃是設定的意思,表示把變數A設定成…

算術運算子 + 加 1 + 1 = 2 - 減 2 - 1 = 1 * 乘 2 * 3 = 6 / 除 13 / 8 = 1.625 \ 說明(作用) 範例 + 加 1 + 1 = 2 - 減 2 - 1 = 1 * 乘 2 * 3 = 6 / 除 13 / 8 = 1.625 \ 除 (只取整數部分) 13 \ 8 = 1 Mod 取餘數 13 Mod 8 = 5 、 26 Mod 13 = 0 ^ 次方 2 ^ 3 = 8

設定運算子 說明(作用) 範例(number = 10) = 等於(設值) number = 10 += 加之後設定 number += 2 (相當於number = number + 2) -= 減之後設定 number -= 2 (相當於number = number - 2) *= 乘之後設定 number *= 2 (相當於number = number * 2) /= 除之後設定 number /= 2 (相當於number = number / 2) \= 除之後設定(只取整數部分) number \= 2 (相當於number = number \2) ^= 次方之後設定 number ^= 2 (相當於number = number ^ 2) &= 字串相加之後設定 number &= 2 (相當於number = number &2)

比較運算子 運算子 說明 (作用) 範例 (假設score = 100、age = 20) 回傳結果 = 等於 score = age False >= 大於等於 score >= age True <= 小於等於 score <= age <> 不等於 score <> age > 大於 score > age < 小於 score < age 比較運算子會回傳「True或False」值(表示成立、或是不成立;正確、或是不正確;真或是假),通常會與「判斷條件」或「迴圈」伴隨著出現。(判斷條件:If…End If。迴圈:For…Next、Do…Loop等,後面有詳細介紹。)

範例: 串聯運算子 Dim a As String a = 10 + “20“  a的結果是??? Dim b as String 說明(作用) + "+"這個符號不只可以用在數值的加法上,也可以用在字串相加的地方。在字串的相加方面,相加的變數必須宣告為「字串」的型態;如果沒有宣告為字串,"+"本身的預設就是「數值相加」。 & 不管變數的型別是什麼,"&"會把變數的型別通通轉換成「字串」來操作。 範例: 結果為1020 『&』會把符號左右的常數或變數,一律先轉換成字串再進行結合。 結果為30 『+』預設為數字,除非符號左右的資料都是文字,否則會將資料轉為數字相加 Dim a As String a = 10 + “20“  a的結果是??? Dim b as String b = 10 & 20  b的結果是???

邏輯運算子 運算子 說明(作用) Not 後面所敘述條件為「True」,則回傳「False」; Not Not 後面所敘述條件為「False」,則回傳「True」。 And And運算子會同時判斷前後兩者的敘述條件,如果前後所敘述的條件皆為「True」,則回傳「True」; 有任何一段條件為「False」,則回傳「False」。 Or Or 前後所敘述的兩段條件只要有一段為「True」,則回傳「True」; 當兩段條件皆為「False」,則回傳「False」。 Xor 當Xor 前後所敘述的兩段條件一段為「True」,一段為「False」, 則Xor的回傳值為「True」; 若兩段條件皆為「False」或皆為「True」,則回傳「False」。 AndAlso 用來判斷回傳值的條件與And相同,不過AndAlso不會同時針對前後兩個敘述條件做判斷,AndAlso會先判斷前面的敘述條件,如果前面的敘述條件為「False」,則不會判斷後面的敘述條件,直接回傳「False」。 OrElse 用來判斷回傳值的條件與Or相同,不過OrElse不會同時針對前後兩個敘述條件做判斷,OrElse會先判斷前面的敘述條件,如果前面的敘述條件為「True」,則不會判斷後面的敘述條件,直接回傳「True」。

邏輯運算子 運算子 範例 (假設score = 100、age = 20) 回傳結果 Not Not score = 100 And score = 100 And age = 20 Or score = 100 Or age = 20 Xor score = 100 Xor age = 20 AndAlso score > age AndAlso age > 50 OrElse score > age OrElse age > 50 False True

運算子的優先順序 別忘了由左到右,括號『(』、『)』優先 ^(次方) –(負號) 算術/串連運算子 *, / (乘法及除法) \ (只取整數部分的除法) Mod (取餘數) +, –(加法及減法)、 +(字串串連) &(字串串連) 比較運算子 =(等於)、<>(不等於)、<,>(大於或小於)、>=(大於等於)、 <=(小於等於)、Like 邏輯/位元運算子 Not And、AndAlso Or、OrElse、Xor

變數的型別轉換 隱含型別轉換 0000: Dim c As String 0001: c = "2431" + 3 0002: Console.Write(c) 0003: Console.ReadKey() 第一個運算元是字串,但是為了與數字3相加,系統會先試圖將字串2431轉成數字的2431,接著加上3,變成2434,這是運算的結果。 但是,為了放到字串變數C當中,系統又會作一次型別轉換,將數字的2431轉成字串的2431,放入變數C。 所有的這類型別轉換過程,是由電腦系統自動進行的,這個部分我們稱之為型別的『隱含轉換』。隱含轉換在程式碼中不需要任何特殊語法,由系統自動進行。

CDate(…)為轉換函式,明確的把字串型別的變數A和B,轉換成日期格式 變數的型別轉換 EX: CH2-6\CH2-6\Module1.vb 0000: Dim A, B As String 0001: Dim n As Integer 0002: 0003: Console.Write("請輸入A的生日:") 0004: A = Console.ReadLine 0005: Console.Write("請輸入B的生日:") 0006: B = Console.ReadLine 0007: n = DateDiff(DateInterval.Day, CDate(A), CDate(B)) 0008: 0009: Console.Write("這兩個人生日相差" & n & "天...") 0010: Console.ReadKey() CDate(…)為轉換函式,明確的把字串型別的變數A和B,轉換成日期格式 *DateDiff 函式可以計算出兩個日期之間的差

變數的命名規則 以英文字母開頭 僅能由字母、數字或底線組成 變數名長度不能超過255字元 變數名稱的大小寫在VB中並無不同,名稱最好能夠看出其意義,您可以用底下這樣的方式來命名: Dim LocalTime as Date 用來儲存時間 Dim UserName as String 用來使用者名稱 透過大小寫可以讓變數的命名更有規則性和閱讀性,在微軟的.NET Framework中,命名的方式均符合底下這兩種慣例(之一): Pascal 命名法的大小寫慣例 名稱的第一個字母和每個隨後單字的第一個字母都是大寫的。 例如:BackColor Camel 命名法的大小寫慣例 名稱的第一個字母是小寫的,而每個隨後單字的第一個字母是大寫的。 例如:backColor

Demo-dataSource與DropDownList 習題 運算式 10 Mod 3 * 2 ^ 4 + 4 / 2 的結果為? C=“123”+4 D=123 & 4 運算執行後,C 和 D的結果分別為? Demo-dataSource與DropDownList

Demo-dataSource與DropDownList 習題 請轉為電腦運算式 Demo-dataSource與DropDownList 1. (2+A)(16-A) 2. 3.

Demo-dataSource與DropDownList 習題 請判斷底下的變數名稱何者正確: !Eric _Account User_Name User@Address @cc ?Acc A* Z #AC C( ) ~A Demo-dataSource與DropDownList

Demo-dataSource與DropDownList 習題 計算出BMI 請撰寫一個程式,要求使用者輸入身高體重,並且計算BMI值。 BMI指的是『身高體重指數』(又稱身體質量指數,英文為Body Mass Index,簡稱BMI)是一個計算值,主要用於統計用途。 其公式如下: h = 身高,單位:米; w = 體重,單位:公斤; Demo-dataSource與DropDownList

Demo-dataSource與DropDownList CH03 Demo-dataSource與DropDownList

流程控制 為何需要流程控制? 流程控制指令的介紹 條件判斷 迴圈 陣列

流程控制 為何需要流程控制   在程式設計當中,有一個很重要的概念。我們撰寫的程式需要利用電腦強大的運算能力,來重複且大量的進行資訊處理或計算等功能。因為要重複處理,且需要進行判斷,因此『流程控制』相關的指令碼就出現了。   任何一種程式設計語言,都提供豐富的流程控制功能,而且每一種語言的流程控制指令碼的長相都差不多,這也是因為程式設計經過了長時間的演進與改良,現在幾乎每一種程式設計語言(C#、Java、C、C++),都會具備底下我們將介紹的幾種流程控制方式。

Demo-dataSource與DropDownList CH03 If, Select, try… Demo-dataSource與DropDownList

條件判斷敘述 If…Then 流程控制 If condition [ Then ] [ statements] [ ElseIf elseifcondition [ Then ] [ else if statements ] ] [ Else [ else statements ] ] End If condition通常是一個布林(Boolean)運算式,但它也可以是任何計算結果為數字的運算式。 Visual Basic 2005將會把這個數值解譯為 True 或 False;一個為零的數值會被視為False,而任何非零數值都被看作 True。若 condition 為 True,則 Visual Basic 會執行 Then 關鍵字後面的所有指令碼(statements);反之,則執行Else後面的指令碼(statements)。

流程控制 EX: CH03-01 0000: Sub Main() 0001: Dim score As Integer = 100 0002: Dim result As String 0003: 0004: Console.Write("分數:" & score) 0005: '判斷score 有沒有大於 0006: If score >= 60 Then 0007: result = " 及格!" 0008: Else 0009: result = " 不及格!" 0010: End If 0011: Console.WriteLine(result) 0012: Console.ReadKey() 0013: End Sub

流程控制 EX: CH03-02(巢狀迴圈) 0003: '要求使用者輸入 0004: Console.Write("請輸入一個數字:") 0003: '要求使用者輸入 0004: Console.Write("請輸入一個數字:") 0005: number = Console.ReadLine 0006: '判斷 0007: If number < 10 Then 0008: digits = 1 0009: ElseIf number < 100 Then 0010: digits = 2 0011: ElseIf number < 1000 Then 0012: digits = 3 0013: ElseIf number < 10000 Then 0014: digits = 4 0015: Else 0016: digits = 5 0017: End If

流程控制 EX: CH03-02(巢狀迴圈) 0018: '判斷位數 0018: '判斷位數 0019: If digits = 1 Then Result = "1位數" 0020: If digits = 2 Then Result = "2位數" 0021: If digits = 3 Then Result = "3位數" 0022: If digits = 4 Then Result = "4位數" 0023: If digits = 5 Then Result = "大於位數" 0024: '顯示 0025: Console.Write("數字:" & number & " --> " & Result)

條件判斷敘述 Select…Case 流程控制 Select [ Case ] test expression [ Case expression [ statements ] ] [ Case Else [ else statements ] ] End Select   如果 test expression 符合任何 Case expression 子句,即會執行接在該 Case後的陳述式(statements),直到下一個Case關鍵字或是End Select陳述式。如果 test expression 符合一個以上的 Case 子句,則程式只會執行接在第一個符合條件者之後的陳述式,然後就跳離Select Case。如果在每一個Case 陳述式之間找不到符合條件者,則Case Else陳述式後面的程式碼會被執行。

條件判斷敘述 Select…Case 流程控制 『Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber』 『Case "apples", "nuts" To "soup", TestItem』

流程控制 IF Then 寫法… '宣告變數score ,並初始化score的值為 Dim score As Integer = 100 Dim result As String '用If 來判斷四個等級的分數 If score <= 100 And score >= 80 Then result = "分數介於100-80之間" ElseIf score < 80 And score >= 60 Then result = "分數介在79-60之間" ElseIf score < 60 And score >= 40 Then result = "分數介在59-40之間" ElseIf score < 40 Or score >= 0 Then result = "分數介在39-0之間" End If Select Case 寫法… Console.Write("請輸入分數:") score = Console.ReadLine '用Select Case 來判斷不同等級的分數 Select Case score Case 80 To 100 result = "分數介在-80之間" Case 60 To 79 result = "分數介在-60之間" Case 40 To 59 result = "分數介在-40之間" Case Is <= 39 result = "分數小於等於" Case Else result = "其他的狀況" End Select 利用Select Case的寫法,在條件的陳述方面看起來簡潔多了,不會像If…Then…Else一樣,必須在「大於、小於、等於」或「And、Or…」等符號之間游走,也很容易忘記自己寫到哪裡去…。

讓使用者輸入月份,透過Select Case判斷屬於哪一種季節 流程控制 EX: CH03-05 0000: Sub Main() 0001: Dim MM As Integer 0002: Dim result As String = "" 0003: Console.Write("請輸入月份:") 0004: MM = Console.ReadLine 0005: Select Case MM 0006: Case 12, 1, 2 0007: result = "您輸入的這個月份是冬天" 0008: Case 3, 4, 5 0009: result = "您輸入的這個月份是春天" 0010: Case 6, 7, 8 0011: result = "您輸入的這個月份是夏天" 0012: Case 9, 10, 11 0013: result = "您輸入的這個月份是秋天" 0014: Case Else 0015: result = "沒有這種月份" 0016: End Select 0017: 0018: Console.Write(result) 0019: Console.ReadKey() 0020: End Sub 讓使用者輸入月份,透過Select Case判斷屬於哪一種季節

流程控制 Select Case 中幾種錯誤的寫法 必須由小而大 執行後跳離 Select Case '正確寫法 Case 80 To 100 Result = "真厲害!" '錯誤寫法 Case 100 To 80 必須由小而大 Dim score As Integer = 90 Dim Result As String = "" Select Case score Case 80 To 100 Result = "真厲害!" Case 85 To 100 Result = "很棒! " ‘不會執行到 End Select 執行後跳離 Select Case

Select Case 與 If … Then之差異 流程控制 Select Case 與 If … Then之差異 IF…Then Select Case 語法 較為簡單直覺。 較具有結構化。 適用於 適用於運算式結果只會是True或False兩者之一的判斷式。 適用於同一個變數或運算式需要『重複且多次』被拿來判斷時候。多半用於判斷結果會有多種不同的可能時(也就是結果不會只是Ture或False兩種狀態)。 例外條件 要自行撰寫例外條件的處理方式。 可以透過Case Else來處理例外條件。

Select Case 與 If … Then之差異 流程控制 Select Case 與 If … Then之差異 If…Then Select Case

流程控制 巢狀式的判斷敘述 If…Then Dim A As Integer Dim B As String If A > 10 Then If B = "abc" Then (…略…) Else End If Select Case Select Case A Case 1 (…略…) Case 2 Select Case B Case "abc" Case "def" End Select Case 3 If B = "zzz" Then End If

流程控制 Try…Catch錯誤處理 Try…Catch Try 可能發生錯誤的程式碼位置 Catch 發生錯誤時,要執行的指令 [ Exit Try ]若下了Exit Try 指令,則跳出Try…End Try結構 Finally 只要一進入Try敘述中 不管有沒有錯誤或從Try敘述中的哪一部份離開都執行的程式 End Try Try…Catch是用來在程式中進行防止錯誤的處理,每一個程式在執行階段,都可能發生無法預期的錯誤,如果在程式發生錯誤時,能夠進行最後的狀態記錄,或是在程式終止(當掉)之前,將尚未儲存的資料進行儲存,對程式的使用者將更有保障。

流程控制 如果程式發生錯誤,才會執行到這段 Try…Catch錯誤處理 '訊息 Console.Write("請輸入月份:") '開始捕捉錯誤 Try '可能發生錯誤的程式 MM = Console.ReadLine Select Case MM Case 12, 1, 2 result = "您輸入的這個月份是冬天" Case 3, 4, 5 result = "您輸入的這個月份是春天" Case 6, 7, 8 result = "您輸入的這個月份是夏天" Case 9, 10, 11 result = "您輸入的這個月份是秋天" Case Else result = "沒有這種月份" End Select Catch ex As Exception '錯誤處理區段 Console.WriteLine("您的程式發生問題,請與我們聯繫...") Console.WriteLine("(" & ex.Message & ")") Console.ReadKey() Exit Sub End Try 如果程式發生錯誤,才會執行到這段

Demo-dataSource與DropDownList CH03 for迴圈 Demo-dataSource與DropDownList

For …Next迴圈 流程控制 For counter [ As 型別] = start To end [ Step step ] [ statements ] [ Exit For ] Next [ counter ]   在For和Next兩個關鍵字中的程式碼,會被重複的執行,但執行的次數會依照變數counter來決定。而變數將會從start開始到end,每次遞增step。   在重複執行For…Next迴圈中的程式碼時,變數『counter』將會每此被替換成不同的值。

流程控制 Sub Main() For i As Integer = 1 To 12 Console.WriteLine(i) Next EX: CH03-07 Sub Main() For i As Integer = 1 To 12 Console.WriteLine(i) Next Console.ReadKey() End Sub 被重複執行12次,每次變數i的值都有所不同 在這個迴圈當中,我們設定了一個I變數,型別為整數,數值會從1開始持續累積到12。(也就是超過12時,就會跳出迴圈)

流程控制 巢狀迴圈 0001: Dim ret As String = "" 0002: EX: CH03-09 0001: Dim ret As String = "" 0002: 0003: For I As Integer = 1 To 10 0004: For k As Integer = 1 To I 0005: ret = ret & "*" 0006: Next k 0007: ret = ret & vbCrLf 0008: Next I 0009: 0010: Console.Write(ret) 0011: Console.ReadKey() 巢狀迴圈 在這個迴圈當中,我們設定了一個I變數,型別為整數,數值會從1開始持續累積到12。(也就是超過12時,就會跳出迴圈)

利用Exit For允許中途離席 (請注意,Exit For一定會出現在判斷式之後) 流程控制 EX: CH03-15 '宣告 Dim Start, Finish As Integer '要求使用者輸入開始數字 Console.Write("請輸入開始數字:") Start = Console.ReadLine '要求使用者輸入結束數字 Console.Write("請輸入結束數字:") Finish = Console.ReadLine '在開始數字和結束數字當中找出第一個16 的倍數 For i As Integer = Start To Finish '如果除以餘數為則為的倍數 If i Mod 16 = 0 Then Console.Write("第一個16 的倍數為:" & i) Console.ReadKey() Exit For End If Next 利用Exit For允許中途離席 (請注意,Exit For一定會出現在判斷式之後)

Demo-dataSource與DropDownList CH03 陣列 Demo-dataSource與DropDownList

陣列機制 陣列,是一組在記憶體中連續存放的邏輯相關值,您可以將其視為一連串同樣名稱的變數。 例如,底下這個陣列,可以用來存放某個班級當中,每位學生的身高: 您可能會覺得奇怪,既然已經有變數可以運用,為何還需要陣列呢? 陣列的第一個使用時機在於:『當您為了一個工作而需要重複定義多個變數時』。

可以用For Each迴圈,列舉出所有陣列的值 陣列機制 EX: CH03-09 '宣告Temperature為整數陣列,並且初始化Temperature的值 '在這裡我們填入了12個值,代表每個月份的平均溫度 Dim Temperature() As Integer = {15, 17, 20, 23, 26, 30, 35, 35, 33, 32, 28, 25} '宣告變數sum,用來計算12個月份的平均溫度 Dim sum As Double '利用ForEach迴圈來加總每個月份的平均溫度 For Each con As Integer In Temperature sum += con Next sum /= 12 TextBox1.Text = sum 建立了一個陣列 可以用For Each迴圈,列舉出所有陣列的值 sum=sum/12

陣列機制 Dim names() As String Dim scores() As Integer 陣列的建立與使用 在Visual Basic 2005中,陣列可以宣告成任何型別,宣告的方式只需要在自訂的陣列名稱後面加上小括弧即可: 宣告不固定大小的陣列 Dim names() As String Dim scores() As Integer 宣告固定大小的陣列 宣告names為字串陣列 從0~1共兩個元素 Dim names(1) As String 宣告scores為整數陣列 從0~3共四個元素 Dim scores(3) As Integer

陣列機制 '利用迴圈幫names()陣列設值 For i As Integer = 0 To 1 names(i) = "VB" EX: CH03-09 '利用迴圈幫names()陣列設值 For i As Integer = 0 To 1 names(i) = "VB" Next i '利用迴圈幫scores()陣列設值 For c As Integer = 0 To 3 scores(c) = c Next c names陣列裡兩個元素的值都設成「VB」 scores陣列裡的四個元素,則依順序設成「0,1,2,3」

陣列機制 陣列的維度 在Visual Basic 2005當中,您可以透過底下的語法,定義一個二維陣列: Dim A(2,10) As Integer 透過上面這樣的宣告,可以定義出如同底下的陣列結構: 二維陣列表示該陣列可以有兩個索引,例如A(0,0)表示第一個學生的身高,而A(1,0)則表示第一個學生的體重。以這個方式類推,A(1,8)則表示第9個學生的體重。

陣列機制 這迴圈,要求使用者輸入資料,我們透過Console.ReadLine,讀取使用者輸入的資料並存放到陣列中。 EX: CH02-12 Dim A(10, 2) As Single '先讓使用者輸入資料(為了方便,我們僅輸入5位同學) For i As Integer = 0 To 4 Console.WriteLine("請輸入第" & i + 1 & "個學生的資料:") Console.Write(" -->身高(cm):") A(i, 0) = Console.ReadLine Console.Write(" -->體重(kg):") A(i, 1) = Console.ReadLine Next Console.ReadKey() 您會發現,剛才我們定義的陣列當中,A(n,2)這個元素都完全沒有被使用到 !

陣列機制 接著,我們再透過另一個迴圈,將每位同學的資料顯示出來。 '將身高體重計算出BMI,並儲存到陣列中 EX: CH02-12 '將身高體重計算出BMI,並儲存到陣列中 For i As Integer = 0 To 4 A(i, 2) = A(i, 1) / ((A(i, 0) / 100) ^ 2) Next '顯示每一位同學的資料 Console.WriteLine ("第" & i + 1 & "位同學的身高:” & A(i, 0) & " 體重:" & A(i, 1) & " BMI:" & A(i, 2) ) 我們透過一個迴圈,將每位同學的BMI計算出來,並且儲存到A(n,2)這個陣列的元素當中 接著,我們再透過另一個迴圈,將每位同學的資料顯示出來。 BMI指的是『身高體重指數』(又稱身體質量指數,英文為Body Mass Index,簡稱BMI)是一個計算值,主要用於統計用途。 其公式為: h = 身高,單位:米; w = 體重,單位:公斤;

陣列機制 執行結果如下:

陣列機制 陣列相關函式 動態變更陣列長度 函式 功能 用法 Ubound 取得陣列最大索引值 Ubound(陣列名稱) Lbound 取得陣列最小索引值 Lbound(陣列名稱) 動態變更陣列長度 ReDim names(2) 使用『ReDim』有幾個注意事項: ReDim時,就必須要給定陣列的長度。 ReDim後,陣列不需要(也不可以)再宣告一次陣列型別。 ReDim後,陣列裡面所有的元素會通通消失,除非加上Preserve關鍵字。

Demo-dataSource與DropDownList CH03 Do while迴圈 Demo-dataSource與DropDownList

Do…While迴圈機制 Do…Loop與For…Next類似,都是運用在處理重複運算的迴圈,只是迴圈結束條件的方式略有不同。 condition是判斷條件,當程式碼進入Do…Loop迴圈之後,會一直執行,每次執行時都會判斷condition條件是否成立,但是依照語法的不同,有幾種不同的可能… Do { While | Until } condition [ statements ] [ Exit Do ] Loop -或- Do Loop { While | Until } condition

Do…While迴圈機制 四種語法分別如下: 先執行一次,然後判斷條件,當條件成立時,重複執行一次迴圈中的內容: 先執行一次,然後判斷條件,當條件不成立時持續在迴圈中重複執行,直到條件成立時,則跳出迴圈: Do … Loop While 條件運算式 Loop Until條件運算式 先判斷條件,當條件成立時持續在迴圈中重複執行,直到條件不成立時,則跳出迴圈: 先判斷條件,當條件不成立時持續在迴圈中重複執行,直到條件成立時,則跳出迴圈: Do While條件運算式 Loop Do Until條件運算式

Do…While迴圈機制 Do While的應用: EX:CH03-20 0001: Dim n As Integer 0002: Dim k As Integer 0003: 0004: Console.Write("請輸入一個數字:") 0005: n = Console.ReadLine 0006: 0007: Do 0008: k = k + n 0009: Loop Until k + n > 10000 0010: 0011: Console.Write("最接近的n的倍數為:" & k) 0012: Console.ReadKey() 程式會讓使用者輸入一個數字並找到這個數字最接近10000的倍數(最接近10000,但不能超過)

Demo-dataSource與DropDownList 習題 假設家用電費每一度是2.1元,而商業用電每一度是2.7元,請設計一個程式,讓使用者輸入電表上的度數,以及用電身分(是家用還是商業用),並依照使用者輸入的資料,計算出應繳交之電費。 提示:利用If指令 Demo-dataSource與DropDownList

Demo-dataSource與DropDownList 習題 從今年開始,由於夏天用電量吃緊,因此電力公司將採用累進制度的電費計價方式,計價方式如下表,請設計一個程式,利用 Select Case 或 If 判斷指令,讓使用者輸入電表上的用電度數、用電的月份,並以一般住家用電的計費方式,計算出應繳的電費: Demo-dataSource與DropDownList 分      類 (每月使用累計) 夏月(6/1~9/30) 夏月以外的時間 一般住家用電 110度以下部分 2.100元 111~330度部分 2.730元 2.415元 331~500度部分 3.360元 501度以上部分 3.465元 營   業   用   電

Demo-dataSource與DropDownList 習題 請利用巢狀迴圈,設計出一個如下圖的九九乘法表: Demo-dataSource與DropDownList

Demo-dataSource與DropDownList 習題 建立一個程式,讓使用者輸入開始和結束數字,並且找出其中的質數(除了1和自己之外無法整除的數) 提示:利用for與if Demo-dataSource與DropDownList

Demo-dataSource與DropDownList 習題 建立一個程式,讓使用者輸入班上所有學員的考試成績(0-100),並且計算出平均分數,最後列出考試成績優於平均分數的學生。 提示:利用陣列機制 Demo-dataSource與DropDownList

Demo-dataSource與DropDownList 習題 請建立一段密碼判斷的程式,利用Console.ReadLine要求使用者輸入密碼(密碼可事先以字串定義好,例如Dim Pwd As String=”12345”),以Do…Loop迴圈判斷使用者輸入的密碼是否正確,若密碼錯誤,則要求使用者重新輸入,直到使用者輸入正確的密碼為止。 若密碼正確,則跳離Do…Loop迴圈,顯示出『歡迎進入系統』。 Demo-dataSource與DropDownList