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會自動關閉目前開啟的專案。