第 一 章 資料庫概念

第 一 章
認識程式語言
課程名稱:程式設計
授課老師:________
2015/10/1
1
本章學習目標
1.讓讀者瞭解軟體與程式語言的關係。
2.認識視覺化「Visual」程式語言的優點及特性。
2015/10/1
2
本章內容
1-1.認識程式語言
1-2 .NET Framework簡介
1-3. VB6.0與VB2010
1-4 物件導向設計
1-5 主控台應用程式
1-6 Visual BASIC 2010語言操作環境
1-7 程式碼片斷管理員
1-8 習題
2015/10/1
3
1-1.認識程式語言
人與人之間的溝通必須要使用共通的語言(例如:國語、閩南語、英
語…等),而人想要與電腦溝通,則一樣必須要用電腦看得懂的語言,
即所謂的電腦程式語言(例如:Assemble、Basic、C、C++、JAVA、
Pascal、Delphi、Visual Basic、ASP語言及ASP.NET2.0、VB2010、
C#2010等新一代的程式語言)。而這些程式語言都只是「軟體」的一
個子集合。
2015/10/1
4
1-1.1 何謂軟體
軟體(software)就是程式,它是由一連串的指令所組成,其主要功能
就是達成某一特定的目的。在電腦系統中軟體是用來控制硬體,如果
只有硬體而沒有軟體,則電腦被視為一堆廢鐵。因此,軟體與硬體缺
一不可。就像人一樣,身軀(硬體)與精神(軟體)也是缺一不可的。如圖
1-1所示:
圖1-1 人與電腦的關係
2015/10/1
5
一般而言,軟體可分為兩大類分別為:「系統軟體」和「應用軟體」。
如圖1-2所示。
系統軟體
軟體
作業系統
DOS,Unix,Windows,Vista...
程式語言
VB,BASIC,C,VC,JAVA...
工具程式
FTP,MSN,WINZIP...
套裝軟體
WORD, EXCEL,ACCESS...
自行開發
程式
選課系統、訂票系統...
應用軟體
圖1-2 軟體分類架構圖
2015/10/1
6
1-1.2 程式語言的分類
一般而言,程式語言可分為兩大類:一為低階語言,另一為高階語言。
而低階語言又可分為機械語言與組合語言。高階語言則可分為程序導
向語言與非程序導向語言及自然語言。如圖1-3所示:
自然語言(第5代)
非程序
導向語言(第4代)
未來的程式語言
物件導向語言
VB, VB.NET, VC
結構化查詢語言
SQL,Oracle
人
高階語言
程式語言
程序
導向語言(第3代)
BASIC, C, PASCAL
組合語言(第2代)
Assembly
機械語言(第1代)
電腦內部0或1所組成
低階語言
圖1-3 程式語言分類架構圖
2015/10/1
電腦
7
由於電腦只看懂機械語言,因此,我們利用高階語言在撰寫程式之後,
電腦並無法直接的執行,必須要透過翻譯程式來翻譯為電腦可以接受
的語言。一般而言,從撰寫原始程式到執行時,必須要經過一連串的
步驟,例如編譯、連結、產生執行檔及執行結果。如圖1-4所示。
2015/10/1
8
高階語言(BASIC)
主記憶體
直譯程式
執行程式
高階語言(C語言)
函式庫(.lib)
編譯程式
目的程式
連結程式
可執行模組
載入程式
組合語言(Assembler)
組譯程式
副程式
執行步驟:原始程式編譯目的程式連結產生執行檔
載入到記憶體執行結果
圖1-4程式的執行流程圖
2015/10/1
9
1-1.3 程式語言的演進
一、第一代語言---機器語言(Machine languages)
這是一種比較接近電腦的語言,亦即電腦可以直接執行
的機器碼,由於電腦內部是使用0與1兩種狀態來表示資料及
邏輯閘開關的控制,因此,我們將電腦內部由 0與1所組成的
資料稱之為「機器語言(machine languages)」。
2015/10/1
10
一、第一代語言---機器語言(Machine languages)<續>
因為它是一種以0與1所構成二進位形式的碼,故並不適
合人類閱讀與學習,也不適合用來進行程式設計。如圖1-5所
示:
2015/10/1
11
一、第一代語言---機器語言(Machine languages)<續>
優點:
它是以邏輯狀態0和1直接命令電腦,不需翻譯就可以直接執
行,所以速度最快。
缺點:
(1)不同的處理機(CPU),使用不同的機器語言,所以可攜性較差。
(2)只有兩種狀態0與1。因此,不僅難學、難懂、也不容易維護。
2015/10/1
12
二、第二代語言---組合語言(Assembly
languages)
這是一種介於「高階語言」與「機器語言 之間的語言,由
於機器語言在使用上不方便,因此,工程師們便從機器語言中找
出規則,以英文字、數字符號來重組機器語言,使它們變成較容
易記憶的語言,這種語言便稱為「組合語言(Assembly
languages)」。它是利用特定功能的符號指令稱為助譯碼
(Mnemonics code),例如:ADD代表「相加」、LDA代表「載
入」、MOV代表「搬移」;這些指令比起機器語言來說會較有
意義、容易學習,而負責翻譯的程式則稱之為組合程式
(Assembler)或組譯器。
2015/10/1
13
二、第二代語言---組合語言(Assembly
languages)<續>
由於每一種計算機(電腦)皆有其獨特的機器語言,因此每一
種機器的組合語言各有不同。所以,可攜性(Portability)較差。並
且較難撰寫及維護,因此,一般使用者較少使用組合語言設計程
式。如圖1-6所示:
組合語言
ADD
MOV
LDA
機器語言
110110010001
110000000011
111101101010
圖1-6 人和電腦溝通示意圖(二)
2015/10/1
14
三、第三代語言---程序導向語言(Procedure-Oriented
Language)
這是一種類似自然語言,它較具有結構性,可以方便讓使用者撰
寫程式。但是,在撰寫完成之後必須要再經過編譯器(Compiler)
或直譯器(Interpreter)轉換成「機器語言」之才交給電腦執行。
常見的編譯器有C、直譯器有BASIC均屬此類。如圖1-7所示:
高階語言(VB)
機器語言
IF Score>=60 Then
MsgBox(“及格”)
Else
MsgBox(“不及格”)
End If
110110010001
110000000011
111101101010
101010101011
101010111111
圖1-7 人和電腦溝通示意圖(三)
2015/10/1
15
四、第四代語言---非程序導向語言(NonProcedureOriented Language )
由於程序導向語言在開發專案時成本較高、維護不易及重覆使用性低的
缺點。因此,後來又發展出「非程序導向語言」,其設計上的優點就是,
只要告訴電腦”要做什麼(What to do)”,而不必告訴它”如何做(How to
do)”。並且部份的程式碼會自動產生(例如:ASP.NET 2.0),因此,可
以大大的縮減專案開發的時間,並且程式在維護上也更有效率。
2015/10/1
16
四、第四代語言---非程序導向語言<續>
常見的非程序導向語言有下面兩種:
(1)結構化查詢語言(SQL)
(2)物件導向語言(Object-Oriented Programming, OOP)
2015/10/1
17
(1)結構化查詢語言(SQL)
比程序導向語言更容易使用的語言,使用者只需將步驟寫出來,
而不必管電腦要如何去執行,這樣的電腦語言稱為查詢語言
(Query Language);這種語言減輕了使用者程式設計的負擔,常
見的是資料庫查詢語言如:SQL。如圖1-8所示:
撰寫查詢語言
Select 使用者所要看的欄位
From 資料表名稱
Where 過濾條件
執行結果
圖1-8 查詢語言示意圖
2015/10/1
18
(2)物件導向語言(Object-Oriented Programming, OOP)
所謂物件導向程式語言(Object-Oriented Programming簡稱
OOP),是把程式設計的概念具體化、物件化,並以該物件的角
度去分析和解決問題,它不但突破了以往程序導向語言只能循序
單向的設計缺失,更因物件的簡便、維護容易及可重覆使用…等
特性,而使得程式開發的速度加快,因此成為最新一代程式語言
的主流。常見的物件導向式語言有Visual BASIC 2010、Visual
C++、VB.NET、ASP.NET、C#...等等。如圖1-9所示:
每一個按鈕都是獨立
的物件,當某一物件
的程式有Bug時,也
不會影響其他的物件
2015/10/1
19
五、第五代語言---自然語言(Natural languages)
就是我們日常所用的語言,如英文(english )、中文(chinese)等,
這是最接近人類所使用的語言。由於此種語言文法和語意上較為
複雜,因此在電腦處理上較不容易,所以並不合適給予電腦處理,
目前只用在人工智慧研究之一。如圖1-10所示:
圖1-10自然語言示意圖
2015/10/1
20
1-1.4 高階語言的種類
既然低階語言在學習上較為困難,因此,一般的學習者都是利用高階
語言來開發系統,而目前較常用的高階語言有下列數種。依發展的年
代說明如下:
1.FORTRAN(FORmula TRANslator) 語言
2.COBOL 語言
3.BASIC 語言
4.PASCAL 語言
5.C 語言
6.C++
7.JAVA
2015/10/1
21
1-1.5 何謂演算法?
「演算法」在韋氏辭典中定義為:「在有限步驟內解決數學問題的程
序」。我們可以把演算法(Algorithm)定義成:「解決問題的方法」。
【題目】製作蛋糕的方法,其步驟如下:
一、撰寫演算法應遵守五點原則
1.輸入(Input):不一定要有輸入。可能沒有,也可能是多個資料輸入。
【題目】 製作蛋糕時,必須要輸入:「雞蛋、麵粉及鮮奶」等食材。
【課本例子】
例如1:不需輸入
如果想要取得系統目前的時間,不須要輸入,只要寫一行now()
函數,就可以輸出系統時間。
例如2:必需輸入
求某數為奇偶數時,則必須先要有一個輸入整數,才能進行
判斷。
一、撰寫演算法應遵守五點原則: (續)
2.明確性(Definiteness):每一行指令都必須明確,不可模稜兩可。
【題目】製作蛋糕時,要加入多少的麵粉與雞蛋及要加熱多久,
必須明確,不可模稜兩可。
【課本例子】
例如1:判斷某一數值是否為偶數。
首先我們試著用下列文字來加以描述:
(1)輸入一個正整數。
(2)作餘除運算是否為0。
不具明確性
(3)為0即為偶數。
以上描述看來似乎正確,但是從演算法觀點來看,其中的第(2)點並不
符合「明確性」,因它並未說明「餘除運算」是如何運算,容易造成
混淆與不解。我們應該改寫為:
(1)輸入一個正整數N。
(2)如果N 除以2,其餘數為0。
(3)則其N為偶數。
具明確性
【課本例子】
例如2:
「用功的學生才能領獎學金」就不具有明確性,因為每一個人對用
功的定義可能不盡相同,而如果改為「成績90以上的學生才能領
獎學金」就是具有明確性,因為90分是一個比較客觀的定義。
一、撰寫演算法應遵守五點原則: (續)
3.有限性(Finiteness):演算法不能有無窮迴路,必須能終止執行,
亦即必須在有限的步驟內完成。
【題目】製作蛋糕必須在有限的步驟內完成
【課本例子】
由於演算法並非是真正可以執行的程式。但是,真正的程式是可以有
無窮迴路的動作。
例如:Windows 作業系統(系統程式)除非系統關機或當機,否則它會
永遠執行一個「等待迴圈」,來等待使用者從鍵盤輸入或其他
的輸入設備。
一、撰寫演算法應遵守五點原則: (續)
4.正確性(Correctness) :既然演算法是解決問題的方法,因此,
正確性是最基本的要求。
【題目】製作出來的蛋糕必須要正確,亦即符合使用者的需求
【課本例子】
例如:以下判斷某數為奇偶數的演算法,雖然符合「明確性」,但是
「不正確」,因為N 除以2,其餘數為0,則N應該為「偶數」,
而非「奇數」。
輸入一個正整數N。
如果N 除以2,其餘數為0。
則其N為奇數。應該改為「偶數」
一、撰寫演算法應遵守五點原則:( 續)
5.輸出(Output):至少一個輸出。
【題目】在製作蛋糕時,在輸入「雞蛋、麵粉及鮮奶」之後,一定會
有輸出。
【課本例子】
例如:在電腦中,處理資料的基本過程有三個步驟:
輸入
處理
輸出
(原始資料) (程式) (有用的資訊)
所以,使用電腦來為我們處理資料時,有可能是系統自動接收
到一個訊號,來當作輸入資料,但是系統至少會輸出一項讓使
用者參考的有用資訊。
2015/10/1
33
二、描述演算法有三種方法
(一)文字敘述
【定義】演算法可用文字來加以描述,但是會比較不精確,因此一般較
不常用。
【題目】
請利用「文字敘述」來描述使用者登入帳號與密碼時,系統檢查的過程。
【解答】
步驟一:輸入使用者帳號與密碼
步驟二:判斷帳號與密碼是否正確
步驟三:如果正確時,則可以登入系統
否則,就無法登入!
(二)流程圖(Flowchart)
【定義】利用圖形方式來表達欲解決問題的步驟。
【題目】
請利用「流程圖」來描述使用者登入帳號與密碼時,系統檢查的過程。
【解答】
開始
輸入
帳號與密碼
輸入
處理
真(True)
檢查帳號與密碼
假(False)
輸出(顯示)
顯示Pass
顯示NoPass
結束
說明:流程圖可以協助程式設計者設計程式,可增加程式的可讀性。
(三)虛擬碼(Pseudo Code)
【定義】兼具文字描述及流程圖的優點,其方式是用文字摻雜程式語言,
來描述解題步驟與方法。
【題目】
請利用「虛擬碼」敘述使用者登入帳號與密碼時,系統檢查的過程。
【解答】
(1)Input: UserName, Password
(2)IF (UserName And Password) ALL True
Output: You Can Pass!
else
Output: You Can not Pass!
說明:在資料結構中,一般都是利用「虛擬碼」來表示演算法。
延伸學習<觀念>
一、流程圖(Flowchart)
【定義】利用圖形方式來表達欲解決問題的步驟。
【優點】1.它可協助程式設計者設計更周詳的程式
2.可增加程式的可讀性
3.對於初學者而言可幫助奠定良好的程式設計基礎
【作法】分析那些資料是要「輸入」,經過「處理」之後,要「輸出」
那些結果。
【繪製原則】
1.流程圖必須使用標準符號,便於閱讀和分析。
2.流程圖中的文字力求簡潔、扼要,而且明確可行。
3.繪製方向應由上而下,由左至右。
4.流程線條避免太長或交叉,可多用連接符號。
延伸學習<練習>
一、流程圖(Flowchart)<續>
【舉例】請繪出使用者登入「帳號」與「密碼」時,系統檢查的流程圖。
提示:
步驟1:輸入帳號與密碼 <輸入>
步驟2:檢查是否正確 <處理>
步驟3.1:正確時,則顯示Pass。
<輸出>
步驟3.2:不正確時,則顯示NoPass。 <輸出>
開始
輸入
帳號與密碼
輸入
處理
真(True)
檢查帳號與密碼
假(False)
輸出(顯示)
顯示Pass
顯示NoPass
結束
延伸學習<比較>
二、虛擬碼(Pseudo Code)【比較「流程圖」與「虛擬碼」】
【題目】比較1+2+3+…+10的「流程圖」與「虛擬碼」。
開始
(1)設Count=1,Total=0;
設初設定
Count=1;
Total=0;
(2)Total=Total+Count;
(3)Count=Count+1;
假
Count<=10
真
(1) Total= Total+ Count;
(2) Count= Count+1;
顯示結果:55
結束
(4)若Count <=10 則回步驟(2)
(5)印出Total
1-1.6 程式設計概念
我們要開始程式設計時,一定要進行下面五個步驟:
步驟1. 分析所要解決的問題(需求)
說明:
(1)首先要瞭解問題的需求及條件。
(2)確定要輸入那些資料。
(3)確定要輸出那些資訊報表。
1-1.6 程式設計概念(續)
步驟2. 設計解題的步驟(演算法)
說明:
撰寫演算法可以利用(1)文字敘述(2)流程圖(3)虛擬碼來表示
解決問題的步驟。
1-1.6 程式設計概念(續)
步驟3. 編寫程式 (程式碼)
說明:
選擇適當的程式語言,將演算法的步驟寫成一個完整的程式。
1-1.6 程式設計概念(續)
步驟4. 上機測試、偵測錯誤 (偵錯)
說明:
一個「有用性」及「易用性」的程式,必須要經過多次的測試,
若有錯誤,立即更正,直到正確無誤為止。
1-1.6 程式設計概念(續)
步驟5. 編寫程式說明書(可執行)
說明:
一個功能強而完整的程式,使用者就會願意使用,因此必須有
使用說明書,以便於別人使用或日後的維護。
【實例】計算國文與英文的平均成績,並依照平均成績來求顯示
「及格」與「不及格」。
【解答】
1.分析及定義問題:兩個等級分別如下:
(1)及格:60(含)以上。
(2)不及格:60以下。
2.畫出整合問題的流程圖或撰寫問題的演算法。如下圖所示。
3.撰寫及建立程式模組
題目:計算平均成績,並判斷是否及格
01
Private Sub Button1_Click(……) Handles Button1.Click
02
Dim C_Score, E_Score, Average As Integer
03
C_Score = 60
04
E_Score = 70
05
Average = (C_Score + E_Score) / 2
06
If Average >= 60 Then
07
MsgBox("及格")
08
09
10
11
Else
MsgBox("不及格")
End If
End Sub
4.對每一個程式模組進行測試及除錯,直到沒有錯誤為止
當使用者輸入國文為60分,英文為61分時,是否可以計算出平均成績為60.5,
如果沒有則必須要進行除錯,亦即要將Average的資料型態改為float(浮點數)
1-1.7 為什麼要撰寫程式?
主要的目的:快速解決「複雜的問題」。
例如1:小華問:小明請幫我計算1加到10的總和。
小明說:1+2+3+…+10=55大家都會,太簡單了!
1-1.7 為什麼要撰寫程式?(續)
例如2:
小華又問:小明請幫我計算1加到50000時。
小明則說:太困難了,我無法馬上計算出結果。但是我可以利用
「撰寫程式」來處理。
說明:因此,我們可以非常清楚的知道,程式語言幫忙人類
「解決複雜的問題」。
1-1.8 一個好程式需要滿足條件
一、正確性(Correctness)
二、效率性(Performance)
三、可維護性(Maintainable)
一、正確性(Correctness)
既然演算法是解決問題的方法,所以正確性是一個好程式最基本的要求。
例如:設計一個判斷奇偶數的程式
說明:上面的程式處理過程中,由於程式不正確,所以產生錯誤的結果。
二、效率性(Performance)
指程式真正執行時所必須要花費的時間。一般評估執行時間是依程式碼
所被執行的總次數來計算。亦即所謂的「頻率次數)」當頻率次數愈高
時,代表所需的執行時間愈長。
例如:計算下列程式中變數Count被執行的次數為何?
三、可維護性(Maintainable)
一個好的程式,不只需要有效率地被正確地執行之外,也必須要考慮程
式的可讀性、及未來修改和擴充性,這屬於程式設計方法和風格的問題,
例如:使用模組化來設計程式和加上完整程式註解的說明。
三、可維護性(Maintainable)(續)
(一) 縮排
【使用時機】在使用巢狀結構時,必須特別需要。
使用「縮排」技巧
未使用「縮排」技巧
三、可維護性(Maintainable)(續)
(二) 註解
【定義】它是一種「非執行的敘述」亦即是給人看的,而電腦不會去執
行它。此功能就是用來說明某一段程式碼的作用與目的。
1.使用單引號「 ' 」的使用時機:可以寫在程式碼的後面或單獨一行註解。
Const PI As Single = 3.14
'宣告「圓周率」為.14的常數
2.使用REM的使用時機:只能寫成單獨一行註解。
REM ===設計一個求圓面積與圓周長的程式===
三、可維護性(Maintainable)(續)
(三) 變數及函數名稱的命名
好的變數宣告命名
說明:爾後維護時,看到變數名稱就可以得知變數的意義。
不好的變數宣告命名
說明:爾後維護時,無法馬上得知A與B變數所代表的意思。
1-2 .NET Framework簡介
不管是哪一種程式語言,最終都要編譯成中介語言(MSIL),所有
程式及程式元件之間的溝通介面都是以中介語言(MSIL)為基準。
VC#程式
VB程式
其他程式語言
.NET編譯
MSIL(中介語言)
VC#
應用程式
VB
應用程式
其他程式語言設計
的應用程式
程式語言可跨平台傳遞資料
2015/10/1
57
1-2.1 .NET Framework 的架構
NET Framework大致可分為三部分,分別為共通語言規範(Common
Language Specification)、共通語言執行環境(Common Language
Runtime)及基礎類別庫(Base Class Library)。如下圖所示。
.NET Framework
VB、C#、C++、J#...
Common Language Specification
共通語言規範
Base Class Library
基礎類別庫
Common Language Runtime
共通語言執行環境
Windows作業系統
2015/10/1
58
1-2.2共通語言規範
(Common Language Specification)
在.NET Framework平台中,它大約可以相容25種不同的程式語言,
例如:VB, C#,J#,C++等。而程式設計師不需要學會每一種程式語言,
只要學會其中一種語言即可,並遵守共通語言規範的情況下,每一種
程式語言都可以相互轉換為與平台無關的中介語言(MSIL)。其最主要
的目的就是不同的程式語言可以相互使用所須要的資源,而不會有轉
換上的問題。
2015/10/1
59
1-2.3 共通語言執行環境
(Common Language Runtime)
「Runtime」指的是電腦在編譯某種程式語言的執行時期。而只要
以程式語言撰寫出來的程式,就必須要Runtime來執行,而且不同的
程式語言所使用的Runtime也不相同。因為Runtime提供了程式語言所
必須配備的函式與物件,而各種語言的函式與物件都不盡相同,所以
各種語言都有著自己的Runtime,無法共用。
但是.NET Framework以共通語言執行環境(CLR)來解決了這個共
用問題,IL(Intermediate Language)這個中介語言(介於程式碼與
機器碼之間的語言。
2015/10/1
60
1-2.4 基礎類別庫(Base Class Library)
不同的程式語言有自己的「Runtime」,而物件類別資料庫也是一樣。
各種語言所用的物件類別標準不一,「基礎類別庫」提供了所有.NET
程式語言的應用物件,將各種語言的物件類別作整合,建立一個所有
語言都可共用的物件類別資料庫,例如繪圖、多媒體、郵件管理等物
件類別。
2015/10/1
61
1-3 VB6.0與VB2010
最大分別是, VB6.0不是物件導向程式,而只是引用物件導向的概念。
但VB2010才是真正物件導向程式的語言。一個真正物件導向的語
言,必須要具備以下的特性:
1.抽象化(Abstraction)
2.封裝性(Encapsulation)
3.繼承性(Inheritance)
4.多形性(Polymorphism)
但是,VB6.0都沒有具備以上的這些特性。而VB2010則都則備了。
2015/10/1
62
1-4 物件導向設計
使用結構化程式設計,的確簡化了我們撰寫程式的工作,也提高
了程式的可維護性。但是,結構化程式設計在開發大型專案時,專注
於功能面(函式)的開發,而往往忽略了功能所要處理的資料。被處理
的「資料」與「功能」在結構化的程式設計是分離的關係。在大型專
案的開發上,由於要處理的問題,相對的要複雜許多,如果,「資料」
與「函式」之間沒有關聯性,很容易發生錯誤,維護起來也很不方便。
後來,物件導向程式設計的興起,就是為了解決結構化程式設計所面
臨的「資料」與「功能」分離的問題。
2015/10/1
63
常見的物件導向語言
常見的物件導向語言
程式語言
適用的領域
C#或C++
適合用來開發各種系統軟體及應用軟體
Java
適合用來開發網際網路的應用程式
Visual Basic 2010
適合用來開發視窗應用程式
2015/10/1
64
1-5 主控台應用程式
主控台應用程式(Console Application)是物件導向VB中最簡單的
一種應用程式,其輸出環境類似DOS,大都是以純文字介面來顯
示,因為它是以命令列輸入方式為主。
【優點】程式較為簡潔並且執行速度較快
【缺點】無法提供有親和力的使用者介面。
因此,筆者不建議一般的初學者使用此方法來撰寫程式。
2015/10/1
65
方法及步驟:
主控台應用程式就是利用模組(Module)來完成,其原理為由一個
Main( )的主程序,其中包含所關相關的程式碼。而我們可以利用
Console物件所提供的方法和屬性來處理,而在模式中也可以包含其
他的副程式或函數,並且不需要由屬性視窗去設定任何的屬性資料。
安裝好Visual Basic 2010之後,你就可以開始撰寫VB2010程式了,
其步驟如下所示:
步驟一:在您的桌面選取「開始」--->「程式集」--->「Microsoft
Visual Basic 2010 Express 版」即可進入了。如果是第一
次使用時,則必須要「建立一個專案」,其步驟如下所示:
2015/10/1
66
步驟一:在您的桌面選取「開始」--->「程式集」--->「Microsoft
Visual Basic 2010 Express 版」即可進入了。如果是第一
次使用時,則必須要「新增專案」,其步驟如下所示:

2015/10/1
67
步驟二:在「新增專案」對話方塊中,點選「主控台應用程式」,再按「確
定」。



2015/10/1
68
在按「確定」鈕之後,即可完成新專案的建立,此時VB2010就會自動建立
一個包含程式基本架構的Module.vb檔案。如下圖所示:
2015/10/1
69
步驟三:撰寫程式
題目:第一個主控台程式
程式檔案名稱
ch1-5.sln
01 Module Module1
02
03
04
05
06
07
08
Sub Main()
Console.WriteLine("我的第一個主控台程式")
Console.WriteLine() '換行
Console.WriteLine("設計者:李春雄 博士")
Console.Read()
End Sub
End Module
步驟四:執行結果
2015/10/1
70
1-6 Visual BASIC 語言操作環境
雖然我們也可以利用主控台(Console)應用程式下來設計Windows表單
的輸出入介面,但這對於初學者而言,是一件較不易學習之事。因此,
若能在「Windows 應用程式模式」下,使用Visual Basic的整合開發環
境(IDE),利用工具箱所提供的工具,如此,可以讓設計者不需要撰寫
任何的程式碼便很輕易地製作出所需要的輸出入介面,如按鈕、文字
方塊…等控制項,因此,程式設計者就只要將時間專注於了解使用者
的需求及撰寫程式流程的核心,不但節省設計輸出入畫面的時間而且
很容易維護。
2015/10/1
71
一、程序導向(Procedure Oriented)
先寫「程式碼」之後,才能呈現「畫面」,並且只能呈現「文字化」
的畫面。
請輸入半徑:3
面積:28.26
周長:18.84
功能鍵說明
R:代表計算 C:取消 E:結束
缺點:沒有「視覺化」的操作介面。
2015/10/1
72
二、物件導向(Object Oriented)
Visual Basic將傳統的Basic從Dos移轉到Windows作業系統下執行,在編寫程
式時,必須先建立新的表單(Form),然後才能開始建立「物件」(如
Button(按扭)、Label(標籤),TextBox(文字框)……等),緊接著就
可以設定物件的「屬性」。最後,撰寫程式相關的程式碼。如下圖所示:
TextBox物件Button
物件
Button物件
Label物件
因為Visual Basic是一種「視覺化」的開發工具,也就是說,VB程式所設計出
來的畫面,使用者只要利用滑鼠就可以輕鬆的操作所需要的功能。亦即先設
計「畫面」,再撰寫「程式碼」,並且是以「圖形化」的呈現方式。
73
1-6.1 如何啟動VB2010
安裝好Visual Basic 2010之後,你就可以開始撰寫VB2010程式了,
其步驟如下所示:
步驟一:在您的桌面選取「開始」--->「程式集」--->「Microsoft
Visual Basic 2010 Express 版」即可進入了。如果是第
一次使用時,則必須要「新增專案」,其步驟如下所示:

2015/10/1
74
步驟二:在「新增專案」對話方塊中,選按「Windows應用程式」
並輸入檔案名稱之後,再按「確定」。如下圖所示:



2015/10/1
75
步驟三:認識VB2010整合環境畫面
Visual Basic 2010工作環境,分別有六大項視窗工作環境,
如下圖所示:
功能表列
一般工具列
工具箱
方案總管
表單視窗
屬性視窗
2015/10/1
76
基本上,完整VB2010視窗如上圖所示,但有時候會缺少了某些視窗,
此時你可以按「檢視」功能表列,再選取所要顯示的視窗,即可顯示之
(例如:「檢視/工具箱」即可顯示工具箱)。如果需要調整視窗大小時,
可以將游標至於視窗邊緣,當出現雙箭頭時即可拖曳來調整。其完整的
說明如下所示:
(一) 功能表列
你可以在功能表列中選擇所需要的功能。
例如:要使用「即時運算視窗」時,則選擇「偵錯/視窗/即時運算」
選項。
2015/10/1
77
(二) 一般工具列
除了你可以使用功能表列來選擇你需所的功能之外,VB2010也
提供一般使用者常用的工具放在工具列中,讓使用者快速點選。例如:
當我們撰寫完成程式之後,我們可以直接在「一般工具列」中按「 」
來執行程式。而不需要在功能表列點選「偵錯/開始偵錯」等程序。
在VB中的狀態可分為:設計、中斷及執行模式三種,如下圖所示:
2015/10/1
78
(三) 工具箱視窗(Tool Box)
在工具箱中放置了許多群組的控制項,例如:
1.所有Windows Form群組、
2.通用控制項群組、
3.容器群組、
4.功能表
5.工具列群組
6.資料群組
7.元件群組
8.列印群組
9.對話方塊群組
10.一般群組等。
2015/10/1
79
我們最常使用的群組為「通用控制項群組」,其基本元件有標籤元件、
文字方塊元件及按鈕元件,如下圖所示。這些基本元件一般稱之為「控
制元件」或「控制項(Control)」,每個控制項都是一個完整的物件,
具有屬性、事件和方法,我們只要學習如何使用它,就可以設計出專業
的視窗應用程式了。
常用的控制項如下所示:
滑鼠指標
Button(命令鈕)
CheckBox(核取方塊)
CheckedListBox(核取清單方塊)
ComboBox(下拉式清單方塊)
Label (標籤 )
LinkLabel超連結標籤
ListBox(清單方塊)
Masked TextBox遮罩文字方塊設計
Picture Box(圖形)
RadioButton單選鈕物件
RichTextBox豐富文字方塊
TextBox(文字框)
ToolTip(工具列)
2015/10/1
WebBrowser(瀏覽器)
80
(四) 表單視窗
由於每一個程式都是由「表單」與「程式」所組成,因此,設計者
在撰寫程式之前,必須先要在「設計」模式下,安排使用者介面(表單
設計)。
2015/10/1
81
(五) 方案總管
在VB2010中,常用到的檔案有「專案檔(*.vbproj)」、「表單檔
(*.vb)」,在「新增專案」之後,通常系統會自動幫我們新增一個專
案檔及表單檔,且顯示於「方案總管視窗」中,如下圖所示:
2015/10/1
82
(六) 屬性視窗
在VB2010中的屬性視窗包括(屬性與事件),各有兩種模式:
依「字母順序」排序
依「分類」排序
2015/10/1
83
1-6.2 撰寫第一個VB2010程式
每一個VB2010程式是由兩個部份組合而成,分別為「表單」及「程
式」。因此,在設計一個VB2010程式,必須要完成以下四大步驟:
將從「工具箱」加入物件到表單中
表單設計
設定物件的屬性之屬性值
撰寫程式碼
程式設計
測試執行結果
2015/10/1
84
【實例】撰寫VB2010程式四大步驟實作。
將從「工具箱」加入物件到表單中
2015/10/1
85
設定物件的屬性之屬性值
2015/10/1
86
撰寫程式碼
Private Sub Button1_Click(……) Handles Button1.Click
Label1.Text = Now()
End Sub
2015/10/1
87
測試執行結果
2015/10/1
88
1-7. 程式碼片斷管理員
在VB2010中內建了非常多的程式碼片段,稱為IntelliSense程式碼
片段。而每一個程式碼片段都會執行完整的程式設計工作,設計者
可以善加利用這些IntelliSense程式碼片段,如此,可以加快程式設
計的開發時程。
2015/10/1
89
加入程式碼片段的方法:
在程式碼視窗中加入程式碼片段的位置,按右鍵,此時會出現
快速功能表,請選擇你所須的功能,一層一層的往下找到你所
須的程式碼片段,最後快按二下即可插入此程式碼片段了。
[實例]利用程式碼片段的方式來設計產生亂數值。
2015/10/1
90
步驟一:在欲加入位置按右鍵,此時會出現快速功能表,再點選
「插入程式碼片段」選項,如下圖所示:
2015/10/1
91
步驟二:選擇所須的功能
92
步驟三:插入程式碼片段
Private Sub Button1_Click(……) Handles Button1.Click
Dim generator As New Random
Dim randomValue As Integer
randomValue = generator.Next(10, 100)
End Sub
93
步驟四:測試執行結果
題目:利用程式碼片段來產生亂數值
程式檔案名稱
ch17.sln
01 Public Class Form1
02
Private Sub Button1_Click(……) Handles Button1.Click
03
Dim generator As New Random
04
Dim randomValue As Integer
05
randomValue = generator.Next(10, 100)
06
MsgBox(randomValue)
07
End Sub
08 End Class
94