下載/瀏覽

Download Report

Transcript 下載/瀏覽

第1章 程式語言與Visual Basic的基
礎
1-1 程式的基礎
1-2 程式語言的種類
1-3 程式設計技術的演進
1-4 Visual Basic語言的基礎
1-5 安裝Visual Basic Express整合開發環
境
1-6 Visual Basic Express的基本使用
1-1 程式的基礎
1-1-1 程式簡介
1-1-2 軟體的種類
1-1-1 程式簡介-說明
程式語言(Programming Language)提供相關
語法讓我們撰寫程式碼來建立程式,在使用編譯
程式編譯建立成應用程式後,就可以歸類成不同
的軟體。換句話說,在說明程式語言之前,我們
需要了解何謂程式、軟體與應用程式。
「程式」(Programs)或稱為「電腦程式」
(Computer Programs)是使用指定程式語言所
撰寫沒有混淆文字、數字和鍵盤符號組成的特殊
符號,這些符號組合成指令和敘述,再進一步編
寫成程式碼,程式碼可以告訴電腦解決指定問題
的步驟。
1-1-1 程式簡介-圖例
簡單的說,程式就是一個指令集來告訴電
腦如何執行特定的工作。在實務上,我們
可以將程式視為是一個轉換器,當使用者
從電腦鍵盤或滑鼠取得輸入的資料後,執
行程式就可以將資料轉換成有用的資訊,
如下圖所示:
1-1-2 軟體的種類-說明
「軟體」(Software)是一種電腦執行的應
用程式或作業系統,通常軟體是一個或多
個程式的泛稱,或整套應用程式。「應用
程式」(Applications)是一種處理特定工
作的電腦程式,例如:數學計算分析、文
書處理、試算表和程式語言整合開發工具
等。
軟體以輸出入介面的不同,主要可以分為:
主控台應用程式和視窗應用程式。
1-1-2 軟體的種類-主控台應用程式
早期DOS電腦時代或UNIX/Linux系統的電腦,我
們並不是使用滑鼠點選,使用者是在「終端機」
(Terminals)前,使用鍵盤輸入指令來執行應用
程式,其使用介面是文字模式的鍵盤輸入,或單
純文字內容的輸出結果,稱為「命令列模式」
(Command-line Interface)。
因為主控台應用程式(Console Applications)主
要是使用文字模式來與程式進行互動,所以螢幕
顯示方式大多是單調的黑底白字,作業系統顯示
提示文字等待使用者輸入指令,輸入指令執行程
式後,程式執行結果也是回應文字內容。
1-1-2 軟體的種類-視窗應用程式
視窗應用程式(Windows Applications)也稱為
GUI應用程式(GUI Applications),這是使用圖
形使用介面(Graphic User Interface,GUI)來
輸入與輸出資料,屬於一種更人性化使用介面的
應用程式。事實上,我們目前操作電腦都是使用
Windows作業系統,其執行的程式大多都是圖形
使用介面的應用程式,使用滑鼠來操作圖示、視
窗、按鈕和對話方塊等圖形元件的圖形使用介面,
而不是使用文字模式的鍵盤輸入。
Visual Basic 2008程式開發環境可以讓我們輕鬆
建立Windows視窗應用程式,只需拖拉眾多GUI
元件的控制項,即可建立表單使用介面,在
Windows作業系統輕鬆建立一致外觀和操作方式
的視窗應用程式。
1-2 程式語言的種類
1-2-1 程式語言的種類
1-2-2 低階語言
1-2-3 高階語言
1-2-4 程式是如何執行
1-2-1 程式語言的種類-圖例
程式語言隨著電腦科技的進步,已經延伸
出龐大的族群,一般來說,我們所指的程
式語言是指高階語言,例如:BASIC、
C/C++、C#、Java和Pascal等,如下圖所
示:
1-2-1 程式語言的種類-發展世代
以發展世代來區分,可以分成五個世代,
如下表所示:
世代
第一世代
第二世代
第三世代
第四世代
第五世代
程式語言
機器語言(Machine Languages)
組合語言(Assembly Languages)
高階語言(High Level Languages)
應用程式產生的語言(Application-Generation Languages)或
查詢語言(Query Languages)
邏輯導向語言(Logic-Oriented Languages)
1-2-2 低階語言-說明
低階語言(Low Level Languages)是一種
偏向電腦容易了解的程式語言,它是一種
與機器相依(Machine-dependent)的程式
語言,換句話說,低階語言撰寫的程式是
針對特定種類的電腦,換句話說,只有在
此電腦上可以執行低階語言所撰寫的程式。
簡單的說,低階語言是電腦母語的一種程
式語言,所以執行效率高,但是使用者並
不易學習。主要的低階語言有兩種:機器
語言和組合語言。
1-2-2 低階語言-機器語言
機器語言(Machine Language)
機器語言是一種電腦可以直接了解的程式
語言,它是使用0和1二進位表示的程式碼,
電腦CPU可以直接執行此程式碼,所以執
行效率最高,如下所示:
0111 0001 0000 1111
1001 1101 1011 0001
1-2-2 低階語言-組合語言
組合語言(Assembly Language)
組合語言是為了方便程式設計者撰寫程式碼(因
為二進位程式碼並不容易記憶和撰寫),所以改
為使用簡單符號的指令集來代表機器語言0和1表
示的二進位程式碼,程式只需使用「組譯程式」
(Assemblers)就可以快速轉換成機器語言,然
後在電腦上執行,它是一種十分接近機器語言的
程式語言,如下所示:
MOV AX 01
MOV BX 02
ADD AX BX
1-2-3 高階語言-說明
高階語言(High Level Languages)是一種接近
人類語言的程式語言,或稱為半英文(Halfenglish)的程式語言。這是一種與機器獨立
(Machine-independent)的程式語言,換句話說,
高階語言撰寫的程式可以在多種不同種類的電腦
上來執行。
不過,電腦並不能馬上看懂高階語言的程式碼,
所以需要進一步翻譯轉換成機器語言,因為其轉
換的程式碼通常比直接使用機器語言撰寫的冗長,
所以效率較低,但是非常適合使用者學習。
1-2-3 高階語言-常見的高階語言
目前常見的高階語言有:BASIC、C/C++、
C#、Java、FORTRAN、COBOL和Pascal
等,高階語言需要進行翻譯,將程式碼轉
譯成機器語言的執行檔案後,才能在電腦
上執行。
翻譯方式有兩種:編譯程式和直譯程式。
1-2-3 高階語言-編譯程式
編譯程式(Compilers)
C/C++等程式語言屬於編譯語言,編譯程式
需要檢查完整個程式檔案的程式碼,在完
全沒有錯誤的情況下,才會翻譯成機器語
言的程式檔案,其主要功能有兩項,如下
所示:


檢查程式錯誤。
將程式翻譯成機器語言的程式檔案。
1-2-3 高階語言-直譯程式
直譯程式(Interpreters)
早期BASIC語言(例如:BASICA、QuickBasic等)
和目前網頁技術的「腳本」(Scripts)語言,例
如:VBScript和JavaScript都屬於直譯語言。直譯
程式並不會輸出可執行檔案,而是直接一個指令
一個動作,一列一列的轉換成機器語言後,馬上
執行此列程式碼。
因為直譯程式是一列一列轉換和執行,所以執行
效率低,但是非常適合在系統開發階段的程式除
錯。
1-2-4 程式是如何執行-說明
程式在電腦實際執行的過程對於高階程式語言來
說,例如:BASIC或PASCAL等並非十分重要。
不過,對電腦執行程式有一定的認識,在設計程
式時仍然有十分大的助益。
不論使用高階或低階程式語言,其建立的程式最
後都會編譯成電腦看的懂的機器語言,這些指令
是CPU支援的「指令集」(Instruction Set)。不
同CPU支援不同的指令集,換句話說,雖然高階
語言有很多種,但是CPU只懂一種語言,也就是
其能執行的機器語言。
1-2-4 程式是如何執行-圖例
1-2-4 程式是如何執行-執行程式
CPU執行機器語言程式是依序將儲存在記憶體的
機器語言指令「取出和執行」(Fetch-andexecute)。
簡單的說,CPU就是從記憶體取出指令,然後執
行此指令,取出下一個指令,再執行它。CPU執
行程式的方式,如下所示:


電腦的主記憶體儲存機器語言的程式碼和資料。
CPU從記憶體依序取出一個個機器語言指令,然後執
行它,CPU並非真正了解機器語言在作什麼?這只是
CPU的例行工作,依序執行機器語言指令。
1-2-4 程式是如何執行-中央處理器
(CPU)
電腦CPU提供實際運算功能,個人電腦都是使用
單晶片的「IC」(Integrated Circuit),其主要的
功能是使用「ALU」(Arithmetic and Logic Unit)
的邏輯電路進行運算,以便執行機器語言的指令。
在CPU擁有很多組「暫存器」(Registers),暫
存器是位在CPU中的記憶體,可以暫時儲存資料
或機器語言指令,例如:執行加法指令需要2個運
算元,這兩個運算元資料就是儲存在暫存器。
1-2-4 程式是如何執行-記憶體(說明)
當我們執行程式時,作業系統可以將儲存在硬碟
或軟碟的執行檔案載入電腦主記憶體(Main
Memory),這就是CPU執行的機器語言指令,
CPU從記憶體依序載入指令和執行。
事實上,程式碼本身和使用的資料都是儲存在
RAM(Random Access Memory),每一個儲存
單位有數字編號稱為「位址」(Address)。如
同大樓信箱,門牌號碼是位址,信箱內容是程式
碼或資料,儲存資料佔用的記憶體空間大小,需
視使用的資料型態而定。
1-2-4 程式是如何執行-記憶體(存取)
電腦CPU中央處理器存取記憶體資料的主
要步驟,如下所示:


Step 1:送出讀寫的記憶體位址:當CPU讀取
程式碼或資料時,需要送出欲取得的記憶體位
址,例如:記憶體位址4。
Step 2:讀寫記憶體儲存的資料:CPU可以從
指定位址讀取記憶體內容,例如,位址4的內
容是01010101,換句話說,取得資料是
01010101的二進位值,每一個0或1是一個
「位元」(Bit),8個位元稱為「位元組」
(Byte),這是電腦記憶體的最小儲存單位。
1-2-4 程式是如何執行-輸入/輸出裝
置
電腦的輸入/輸出裝置(Input/Output
Devices)是程式的窗口,可以讓使用者輸
入資料和顯示程式的執行結果。
目前而言,電腦最常用的輸入裝置是鍵盤
和滑鼠;輸出裝置是螢幕和列表機。
1-2-4 程式是如何執行-次儲存裝置
次儲存裝置(Secondary Storage Unit)是一種能
夠長時間和提供高容量儲存資料的裝置。電腦程
式與資料是在載入記憶體後,才依序讓CPU來執
行,不過,在此之前這些程式與資料是儲存在次
儲存裝置,例如:硬碟機。
當我們在Windows作業系統使用【記事本】編輯
VB程式碼時,這些資料只是暫時儲存在電腦的主
記憶體,因為主記憶體在關閉電源後,其儲存的
資料就會消失,為了長時間儲存這些資料,我們
需要將它儲存在電腦的次儲存裝置,也就是儲存
硬碟中的程式碼檔案。
1-3 程式設計技術的演進
1-3-1 非結構化程式設計
1-3-2 程序式與結構化程式設計
1-3-3 模組化程式設計
1-3-4 物件導向程式設計
1-3 程式設計方法-說明
計算機科學的「軟體工程」(Software
Engineering)專注於研究如何建立正確、
可執行和良好撰寫風格的程式碼,嘗試使
用一些已經驗證過且可行方法來解決程式
問題。
「程式設計」(Programming)是使用指
定的程式語言,例如:Visual Basic語言,
以指定風格或技術來撰寫程式碼,在此所
謂的風格或技術就是電腦解決程式問題的
程式設計方法。
1-3 程式設計方法-種類
學習程式設計通常都會經歷數個學習過程,即四種
程式設計技術(Programming Techniques),或
稱為程式設計風格(Programming Styles),如下
所示:
 非結構化程式設計(Unstructured
Programming)。
 程序式程式設計(Procedural Programming)
與結構化程式設計(Structured Programming)。
 模組化程式設計(Modular Programming)。
 物件導向程式設計(Object-Oriented
Programming)。
1-3-1 非結構化程式設計-說明
目前常用的程式語言雖然並不建議使用非
結構化程式設計,不過,早期BASIC或組
合語言建立的程式,很多仍然是使用非結
構化程式設計來建立程式碼。
對於Visual Basic語言來說,所謂非結構化
程式設計是指初學程式設計時,不論幾列
的小程式或數百列程式碼的大程式,都只
擁有一個Main()主程序且不包含任何流程控
制敘述的情況。
1-3-1 非結構化程式設計-圖例
非結構化程式設計的程式碼是使用線性方
式來依序的執行。
1-3-1 非結構化程式設計-問題
程式碼以線性方式執行,如果需要重複操作,例
如:計算10次1加到100,就需要重複10次相同的
程式碼。
如果沒有複製多段程式碼,可以使用GOTO指令,
GOTO指令很好用,可以跳到程式中的任何位置,
不過,亂跳的結果反而增加程式的複雜度,或產
生一些無用的程式碼片斷,稱為「義大利麵程式
碼」(Spaghetti Code),程式碼如同義大利麵
一般的盤根錯節。
非結構化程式的所有程式碼處理的資料都屬於
「全域」(Global)資料,不論第1列或第999列
都可以直接存取資料,如果不小心拼字錯誤,造
成資料誤存,就有可能發生在第1~999列,增加
程式除錯的困難度。
1-3-2 程序式與結構化程式設計-說
明
程序式程式設計是將程式中重複的程式片斷抽出
成為「程序」(Procedures,或稱為Subroutine、
Routine)或「函數」(Functions),即一段執
行特定功能的程式碼。
程式因為已經分割成程序,所以在Main()主程序
的程式碼只是依序呼叫各程序的「程序呼叫」
(Procedure Call),即執行各程序。整個程式使
用流程控制連接各程序,即目前程式設計最常使
用的結構化程式設計,屬於程序式程式設計的子
集。
1-3-2 程序式與結構化程式設計-圖
例
1-3-3 模組化程式設計-說明
模組化程式設計是程序式程式設計的下一
個階段,為了能夠重複使用程序式程式設
計分割建立的程序,我們可以將相同功能
的程序或函數結合在一起成為獨立的「模
組」(Modules),模組是處理指定功能的
子程式。
1-3-3 模組化程式設計-圖例
1-3-4 物件導向程式設計-說明
物件導向程式設計是一種更符合人性化的
程式設計方法,將原來專注於問題的分解,
轉換成了解問題本質參與的東西,也就是
「物件」(Object )。
物件內含處理的資料和相關程序,在物件
之間是使用訊息來進行溝通。
不同於模組化程式設計的模組,物件很容
易擴充功能和重複使用,只需建立好物件
後,由下而上就可以逐步擴充成為一個完
善的物件集合來解決程式問題。
1-3-4 物件導向程式設計-圖例
1-4 Visual Basic語言的基礎
1-4-1 微軟與BASIC程式語言
1-4-2 Visual Basic版本的演進
1-4-3 .NET Framework的基礎
1-4-1 微軟與BASIC程式語言-1
BASIC(standing for Beginner’s All Purpose
Symbolic Instruction Code)是1964年由數學教
授John Kemeny和Thomas Kurtz在Dartmouth學
院所開發的程式語言和編譯程式。第一個BASIC
程式在1964年5月1日早上4點執行後,正式開啟
BASIC語言的時代。
BASIC語言是一種非常簡單且容易學習的程式語
言,其原來目的是訓練學生或初學者作為學習程
式設計的工具和環境。BASIC是當時迷你和微電
腦(PC個人電腦尚未出現)的第一種高階程式語
言,很快就普遍使用在大型電腦主機或當時的超
級電腦。
1-4-1 微軟與BASIC程式語言-2
Visual Basic在微軟十多年的發展之下,從
2.0、3.0、4.0、5.0、6.0、VB.NET到
Visual Basic 2005/2008。現在的Visual
Basic除了程式主要語法源自BASIC外,微
軟已經讓BASIC語言改頭換面成為一套功
能強大的應用程式開發環境,.NET平台的
VB.NET 2002/2003和Visual Basic
2005/2008語言不但是一種真正的物件導向
程式語言,微軟更讓Visual Basic成為足以
和C++與Java語言一較高下的程式語言。
1-4-2 Visual Basic版本的演進-1
在1991年5月20日微軟在亞特蘭大發表
Visual Basic 1.0版。
在1992年9月微軟發表Visual Basic的MSDOS版本。
同年11月微軟推出Visual Basic 2.0版,分
為標準版和專業兩種版本。
在1993年5月發表Visual Basic 3.0標準和專
業版。
1-4-2 Visual Basic版本的演進-2
次年1995年12月推出支援32位元的作業系
統的Visual Basic 4.0版,讓Visual Basic開
始擁有建立物件的能力和OCX。
在1997年2月微軟發表Visual Basic 5.0版。
在1998年6月微軟發表Visual Basic 6.0版。
在2002年2月推出的VB.NET(Visual
Basic.NET)2002版。
1-4-2 Visual Basic版本的演進-3
在2005年底推出.NET Framework 2.0版和
Visual Studio 2005,Visual Basic語言也更
名為Visual Basic 2005(即VB 8.0版)。
在2008年初推出最新.NET Framework 3.5
版和Visual Studio 2008,Visual Basic語言
也改版成最新的Visual Basic 2008,即VB
9.0版。
1-4-3 .NET Framework的基礎-說明
.NET Framework是微軟新世代的程式開發
平台,目前最新版本是3.5版。它是由CLR
(Common Language Runtime)和.NET
Framework類別所組成。我們可以使
用.NET Framework支援的程式語言,例如:
Visual Basic 2008、C++、C#和J#等來建
立.NET應用程式。
1-4-3 .NET Framework的基礎-圖例
.NET Framework程式檔案在使用.NET編譯程式
編譯時,是編譯成一種中間程式語言稱為MSIL
(Microsoft Intermediate Language)。等到執行
程式時,CLR使用「JIT」(Just In Time)編譯
程式將MSIL轉換成機器語言來執行,其架構如下
圖所示:
1-4-3 .NET Framework的基礎.NET Framework類別函式庫
.NET Framework類別函式庫是一個龐大的
類別函式庫,只需支援.NET Framework的
程式語言,都可以使用此類別函式庫的類
別和方法,詳細的說明請參閱附錄B。
1-5 安裝Visual Basic Express開發
環境
1-5-1 Visual Studio 2008簡介
1-5-2 安裝Visual Basic 2008 Express
1-5-1 Visual Studio 2008簡介-說明
Visual Basic 2008語言的開發環境是Visual
Studio 2008,它是微軟推出的整合開發環
境,能夠在同一套應用程式編輯、編譯、
除錯和測試Visual Basic等.NET語言的應用
程式。
Visual Studio 2008是一套支援.NET
Framework的整合開發環境,可以使用
Visual Basic 2008、C#、C++和J#等語言
來建立Windows、ASP.NET、主控台和
Web Services等各種不同的應用程式。
1-5-1 Visual Studio 2008簡介-圖例
在Visual Studio 2008整合開發環境建立的
應用程式是在.NET Framework的CLR平台
上執行,如下圖所示:
1-5-1 Visual Studio 2008簡介-功能
Visual Studio 2008提供的功能,筆者簡單
說明如下所示:






多種程式語言的整合開發環境
強大的方案與專案管理
提供現成的專案範本
視覺化表單設計介面
IntelliSense智慧程式碼輸入
完整除錯功能
1-5-2 安裝Visual Basic 2008
Express
Visual Basic 2008 Express是Visual Studio產品線
的擴充,微軟Express系列提供實用和最少負擔的
程式開發工具,可以讓學生和初學者輕鬆進入
Visual Studio和.NET Framework開發平台,快速
建立所需的.NET應用程式。
Visual Basic 2008 Express中文版包含.NET
Framework 3.5中文版和SQL Server Compact
3.5版,支援Windows Vista作業系統;如果使用
Windows XP作業系統,需要SP2以上版本才能安
裝;Windows Server 2003需要SP1。
1-6 Visual Basic Express的基本使
用
1-6-1 啟動與關閉Visual Basic Express
1-6-2 新增專案
1-6-3 開啟與關閉專案
1-6-1 啟動與關閉Visual Basic
Express-啟動
請執行「開始」→「所有程式」→「Microsoft
Visual Basic 2008 Express Edition」指令,如為
第一次啟動需要執行數分鐘的環境設定,稍等一
下,完成設定可以看到起始頁 ,如下圖所示:
1-6-1 啟動與關閉Visual Basic
Express-關閉
離開Visual Basic Express請執行「檔案」
→「結束」指令。
1-6-2 新增專案
在起始頁按一下【建立】後的【專案(P)】超連接
文字,或執行「檔案」→「新增專案」指令,可
以看到「新增專案」對話方塊。
1-6-3 開啟與關閉專案-說明
對於書附光碟的Visual Basic專案來說,我
們只需啟動VBE就可以直接開啟專案,如
果在VBE已經開啟專案,也可以隨時開啟
其他Visual Basic專案。
雖然VBE的同一個方案能夠擁有多個專案,
不過,因為我們建立的方案都只擁有一個
專案,所以讀者可以將方案視同專案來處
理。
1-6-3 開啟與關閉專案-開啟專案
在起始頁按【開啟】後的【專案(P)】超連
接文字,或執行「檔案」→「開啟專案」
指令,可以看到「開啟專案」對話方塊。
1-6-3 開啟與關閉專案-關閉專案
在VBE執行「檔案」→「關閉專案」指令
就可以關閉專案,或是直接開啟其他專案,
VBE會自動關閉目前開啟的專案。