750 likes | 1k Views
基本視窗程式應用. 第四章 4-1 電腦程式語言的介紹 4-2 流程圖的介紹 4-3 視窗程式語言實例介紹 - Visual Basic 程式語言. 什麼是程式語言?. 程式語言 (Programming Languages) 就是用來組成電腦程式的語言,每一種程式語言都有它特定的用字與使用的片語,人們利用這些字與片語告訴電腦做些什麼事,並將這些字及片語依照該語言特有的文字規則及標準符號合併成指令或敘述,進而組合成為程式。. 4-1 電腦程式語言的介紹. 4-1-1 程式語言的分類 4-1-2 物件導向程式設計的四元件
E N D
基本視窗程式應用 第四章 4-1 電腦程式語言的介紹 4-2 流程圖的介紹 4-3 視窗程式語言實例介紹-Visual Basic 程式語言
什麼是程式語言? • 程式語言(Programming Languages)就是用來組成電腦程式的語言,每一種程式語言都有它特定的用字與使用的片語,人們利用這些字與片語告訴電腦做些什麼事,並將這些字及片語依照該語言特有的文字規則及標準符號合併成指令或敘述,進而組合成為程式。
4-1電腦程式語言的介紹 4-1-1 程式語言的分類 4-1-2 物件導向程式設計的四元件 4-1-3 物件導向程式設計的三種特性 4-1-4 程式的翻譯
4-1-1 程式語言的分類 • 第一代程式語言:機器語言(Machine Language) • 機器語言是電腦所能處理之最直接的程式語言,它不需經由翻譯就可以在電腦上執行。 • 機器語言主要是由0和1兩種符號所組成,因此在學習上及程式的撰寫上都相當地不容易。 • 機器語言的可攜性低。 • 所有的程式在執行之前,都得被翻譯成機器語言才行。
4-1-1 程式語言的分類 • 第二代程式語言:組合語言(Assembly Language) • 組合語言又稱符號語言(Symbolic Language),它是利用符號來代替機器語言的程式語言。 • 和機器語言相差無幾,仍然是很難看得懂,但使用起來卻比機器語言方便多了。 • 用組合語言所寫出來的程式,必須透過組譯程式(Assembler)翻成機器語言後,才可以在電腦上執行。 • 當所要撰寫的程式複雜到一定的程度後,程式設計師通常就不會再使用組合語言來設計了。
4-1-1 程式語言的分類 • 第三代程式語言:程序導向語言(Procedural-Oriented Language) • 程序導向語言是一種依照程式中所有敘述之先後順序,依次執行的程式語言。 • 程式設計者必須要仔細地思考程式中的各項流程,而後透過程式的語法一一地告知電腦。
4-1-1 程式語言的分類 • 第四代程式語言:物件導向語言(Object-Oriented Language,OOL) • 在物件導向語言中,它將程式語言所要處理的對象都看成是一種物件,而後針對每個物件進行開發,到最後再將所有物件組合成一個可以解決問題的程式。 • 物件導向的程式設計方式,是站在比較人性化的觀點來思考及設計程式的邏輯,所強調的是做什麼,而不再是程序導向語言的怎麼做。
4-1-2物件導向程式設計的四元件 • 物件(Object):一般泛指宇宙間任何具體或抽象的事物。 • 屬性(Property):是物件的一項描述內容,用以描述該物件的外貌與特徵。 • 事件(Event):是一種預先定義好的特定動作,通常由使用者或電腦系統所啟動。若為這些事件反應安排執行步驟,程式即可依設計者的指定來進行處理的程序,而為這些為反應所撰寫的處理程序,就是事件驅動(Event Driven)的程式碼,也就是事件程序。 • 方法(Method):是指透過某種程序,可令物件產生特定的動作或行為。
4-1-3物件導向程式設計的三種特性 • 封裝(Encapsulation):係指物件的封閉性。程式設計師在設計完成某個物件之後,只要透過該物件所提供的介面輸入訊息,不必知道物件內部的運作方式,物件便會將結果顯現出來,這便是所謂的封裝性。 • 繼承(Inheritance):物件會擁有其上層物件的一些性質,同時又會擁有自己新增的一些特質。 • 多型(Polymorphism):指的是物件內一樣名稱的函數被不同的下層物件所繼承時,裡面所做的動作可以不一樣。
4-1-4 程式的翻譯 • 所有的程式在撰寫完成後,都必須被翻譯成機器語言才能被電腦執行。 • 不同的程式語言皆有特定的翻譯程式來協助進行翻譯的工作。 • 翻譯程式一般可分為組譯程式、直譯程式及編譯程式等三種。
4-1-4 程式的翻譯 • 組譯程式(Assembler) • 組譯程式又稱為組譯器,它可以將組合語言所撰寫出來的原始程式(Source Code)轉換成目的程式(Object Code)。 • 目的程式常無法直接在電腦的主記憶體內直接執行,必須再透過連結程式(Linker)將目的程式載入到主記憶體後才能執行。
4-1-4 程式的翻譯 • 編譯程式(Complier) • 編譯程式又稱為編譯器,它利用批次作業的方式,將高階語言所撰寫出來的原始程式,一次翻譯成目的程式,而後經由連結程式將目的程式與程式庫連結,產生可以在電腦主記憶體中執行的執行檔。 • 由於執行檔可以重複執行,亦即電腦在每次執行時,不需重新編譯,因此執行速度較快。目前常見的高階程式語言,如Fortran、C、Pascal、Visual Basic…等,皆使用編譯程式來翻譯原始程式。
4-1-4 程式的翻譯 • 直譯程式(Interpreter) • 直譯程式又稱為直譯器,它將高階語言所寫成的原始程式,逐列翻譯成機器語言,每翻譯完一列便立即執行一列。 • 直譯程式並不會產生目的程式,所以執行的速度較慢,而且每次執行時,都必須要重新翻譯。 • 好處是找出程式的錯誤較容易,因此適合初學者學習。早期的BASIC和現在之Visual Basic語言中的即時運算視窗便是使用直譯的方式。
4-2流程圖的介紹 4-2-1 演算法的意義 4-2-2 演算法的示例 4-2-3 認識流程圖
4-2-1 演算法的意義 • 演算法(Algorithm)在韋氏辭典中的定義為:「在有限步驟內解決數學問題的程序」。 • 廣義的演算法指的是「一組用來解決特定問題的有限指令或步驟,我們可以依循這些指令或步驟逐步地解決問題」。 • 當我們利用電腦來解決問題時,必須事先清楚地知道每一個步驟該如何做,並將這些解決問題的先後順序及步驟,以文字的方式逐一表達出來,這種解決問題的有限步驟就稱為演算法。
4-2-2 演算法的示例 • 問題:若我們有三公升和五公升的量器各一個,量器上都沒有刻度。請問要如何填裝剛好四公升的水呢? • 演算法: • 步驟一:將水裝滿三公升的量器,並倒入五公升的量器中。 • 步驟二:再將水裝滿三公升的量器,並同樣地倒入五公升的量器,直到五公升量器裝滿水為止,此時三公升的量器中尚餘一公升的水。 • 步驟三:將五公升量器中的水倒掉。 • 步驟四:將三公升量器中的一公升水倒入五公升量器中。 • 步驟五:再將水裝滿三公升量器,並倒入五公升的量器中。
4-2-2 演算法的示例 • 問題:請寫出1+2+3+4+5+6+7+8+9+10=?的演算法。 • 演算法: • 步驟一:將兩個整數Count和Sum的值分別設為1和0。 • 步驟二:將Count和Sum兩值相加,所得的結果傳給Sum。 • 步驟三:Count的值加1。 • 步驟四:如果count的值小於11,就跳到步驟二,否則就往下執行。 • 步驟五:印出Sum的值即為所求。
4-2-3 認識流程圖 • 演算法是以文字敘述的方式來表示解決問題的步驟,而程式設計師根據演算法的內容,就可以很直接且迅速地轉寫成程式。 • 文字表示的方法,對一般人而言,通常比較無法把握住重點,若能以我們慣用的圖形來表示,就可以減少錯誤發生的機會。 • 流程圖(Flow Chart)就是利用各種特定的圖形符號,以圖表的方式來說明解決問題的方法及步驟。
4-2-3 認識流程圖 • 問題:請繪出1+2+3+4+5+6+7+8+9+10=?的流程圖。
4-2-3 認識流程圖 • 如同我們日常所看到交通標誌,有三角形、圓形及方形,每個形狀各代表不同的含意。流程圖所會使用到的符號也是如此,每種符號各代表一個不同的意義
4-2-3 認識流程圖 • 問題:請繪出郵局提款機(ATM)密碼判斷的流程圖,其演算法說明如下: • 步驟一:使用者輸入密碼。 • 步驟二:將所輸入之密碼與5566(正確密碼)比對,若正確,則列印出“正確”二字,並跳至步驟五。 • 步驟三:若輸入錯誤(不是5566),則列印出“錯誤”二字。 • 步驟四:若輸入錯誤達三次以上,則列印出“不玩了”字樣,並跳至步驟五;而若錯誤未達三次,就要求使用者回到步驟一重新輸入。 • 步驟五:結束。
4-3視窗程式語言實例紹介紹Visual Basic程式語言 4-3-1 認識Visual Basic 4-3-2 撰寫第一個Visual Basic程式 4-3-3 Visual Basic程式的物件、屬性、事件與方法 4-3-4 Visual Basic的資料型態 4-3-5 運算式和運算子 4-3-6 程式流程的控制 4-3-7 迴圈控制敘述 4-3-8 陣列 (Array) 4-3-9 Visual Basic常用函數
4-3-1 認識Visual Basic • 一個Visual Basic程式可以概分為以下三個主要的部份: • 專案(Project):一個專案就代表了一個完整Visual Basic應用程式。如小算盤。 • 表單(Form):就是我們在視窗環境下常見的交談視窗或是普通的視窗。如視窗A。 • 控制項(Control):每個表單上具有特殊用途的物件就稱之為控制項。如B、C、D。
4-3-1 認識Visual Basic • Visual Basic工作環境 • 功能表:A。 • 工具列:B。 • 工具箱:C。 • 表單設計師:D。 • 專案總管:E。 • 屬性視窗:F。 • 表單配置視窗:G。
4-3-1 認識Visual Basic • Visual Basic的即時運算視窗 • 即時運算視窗是透過直譯的方式來翻譯程式碼。 • 只要在即時運算視窗中輸入一列程式碼,並按下Enter鍵,Visual Basic便會馬上將執行結果顯示在視窗中。 • 即時運算視窗很適於程式設計師用來進行程式測試及除錯的工作。
4-3-1 認識Visual Basic • Visual Basic主要是由一列一列的敘述和命令所組合而成的。 • 敘述:由保留字後面跟隨著常數、變數、運算式等所組合。例如:Let C = A + B,其中 Let 為保留字、而 C 為變數, = A + B 為算術運算式。 • 若想將兩個以上的敘述寫在同一列,則敘述之間應以冒號(:)隔開。 • 命令:命令是獨立的保留字。例如:End、Cls等。 • 敘述或命令都是以英文字來表示,而用大寫英文字母或小寫英文字母來表示,對Visual Basic是沒有差別的,也就是英文字母大小寫都視為一樣。
4-3-1 認識Visual Basic • Print敘述 • 格式:Print 欲顯示之內容。 • 功能:將程式的執行結果,顯示在表單中。 • 說明: • Print可以用問號“?”來代替。 • 顯示之內容可以是字串資料或常數、變數及運算式。 • 若顯示字串資料,則引號內的資料會原封不動地印出來。 • 若要顯示的內容為運算式,則會將運算結果印出。 • 後續若接分號“;”,則表示連續輸出。 • 後續若接逗號“,”,則資料會在特定輸出區輸出。
4-3-2撰寫第一個Visual Basic程式 • Int函數 • 格式:Int(X) • 功能:取小於或等於數值X的最大整數值。 • Cls命令 • 格式:Cls • 功能:清除顯示在表單中的資料。 • End命令 • 格式:End • 功能:結束程式的執行。
4-3-2撰寫第一個Visual Basic程式 • Rnd函數 • 格式:Rnd • 功能:隨機函數,會產生一個亂數值。 • 說明: • 所產生的亂數值範圍為0 ≦ Rnd < 1。 • 所產生的亂數值可能為0,可能為0.99999,但不可能為1。 • 在使用Rnd函數前,設計師一般多會先加上Randomize這個的指令,Randomize會以電腦系統的時間當作亂數種子來始動亂數產生器。如此在每次執行程式時,方能隨機產生不同的隨機值。 • 若要產生A至B之間的整數亂數,可以透過下列公式產生:Int((B-A+1) * Rnd) + A
4-3-2撰寫第一個Visual Basic程式 • 執行專案:執行程式的方式很簡單,只需按一下工具列上的開始鈕 就可以了。 • 儲存專案:按選工具列上的儲存專案工具鈕。 • 我們在Visual Basic中所撰寫或所使用到的表單、物件、程式碼等,若將它們單獨存檔,日後便可以再給其它的專案檔來使用。 • 開啟舊專案:按選工具列上的開啟舊專案工具鈕,並選擇所要開啟的專案就可以了。 • 若開啟後未看到表單,此時只要在專案總管視窗中,用滑鼠雙按表單檔名即可。 • 產生可執行檔:按選【檔案/???.exe】的選項。 • Visual Basic提供編譯的方式,允許我們將專案製成可以在Windows環境中執行的執行檔。
4-3-3Visual Basic程式的物件、屬性、事件與方法 • 物件與屬性: • 由工具箱所拖曳至表單上的控制項便是物件,每個物件都有特定的屬性,透過屬性視窗的設定,我們就可以更改物件的屬性設定值。 • 物件的屬性值,除了可以直接在屬性視窗中更改外,也可以經由程式來設定。在程式中,物件的屬性有其規定的設定方式:
4-3-3Visual Basic程式的物件、屬性、事件與方法 • 事件與事件程序: • 事件指的是發生在物件上的一個動作或狀況。例如當我們在表單上按一下滑鼠的左鍵,這就是一個事件。事件會引發事件程序,事件程序的命名方式為:
4-3-3Visual Basic程式的物件、屬性、事件與方法 • 方法: • 方法指的是作用在物件上的內建指令或程序,其目的是要求物件去執行某個特定的動作。方法之使用方式為:
4-3-4Visual Basic的資料型態 • 資料的型態:Visual Basic將資料區分為許多種不同的型態,其中常用的資料型態簡介如下: • 依所處理的資料來分:分為數值資料、字串資料及其它資料。 1.數值資料:整數(整數,長整數),實數(單精準數,倍精準數)、貨幣及 科學符號。 2.字串資料:可動、固定。 3.其它資料:日期、布林、變異。 • 依資料是否具有變動性來分:分為常數,變數。 • 上述兩種資料型態的分類,是可以組合的,例如數值常數、數值變數或是字串常數、字串變數。
4-3-4Visual Basic的資料型態 • 變數(Variable):在程式設計的階段,我們時常需要將資料計算或統計的結果做暫時性的儲存,而這種需要暫存的資料,大多是透過變數來完成。每個變數都包含三個部分: • 名稱(Name):有了變數的名稱,我們便可以在程式中,利用這個變數名稱引用它所包含的資料值。 • 資料型態(Data Type):可以決定變數存放的是哪種類型的資料,如整數資料、字串資料。 • 資料值(Data Value):就是變數所存放的內容。
4-3-4Visual Basic的資料型態 • 變數的命名規則:變數名稱不是任意的,它具有一些的限制,因此在為變數命名時,必須遵守下列的規則: • 變數名稱的長度只能 1 ~ 255 字元。 • 第一字元必須使用英文字,不可使用數字。 • 第二字元以後可以使用英文、數字、底線。 • 保留字不可作為變數名稱。 • 英文字母大小寫視為相同。
4-3-4Visual Basic的資料型態 • 變數的資料型態:在Visual Basic中,變數的資料型態主要分為字串、整數(整數,長整數)、實數(單精準數,倍精準數)、布林、變異等。
4-3-4Visual Basic的資料型態 • Dim敘述 • 格式:Dim 變數名稱 [As 變數的資料型態] • 功能:宣告變數的資料型態。 • 說明: • Dim及As都屬於保留字,是用來提示程式接下來要對某一個變數進行宣告的動作。 • 變數名稱得依照變數的命名規則來命名。 • 在同一個宣告敘述中,可以同時宣告多個變數,但變數名稱間必須以 , 來區隔。 • 變數宣告時,若只寫Dim 變數名稱而省略了As 變數的資料型態,則代表該變數的資料型態為變異。 • 一個變數在使用前若未經Dim來宣告,Visual Basic亦會將該變數的資料型態視為是變異。
4-3-4Visual Basic的資料型態 • 常數(Const):有些資料的內容是固定且不隨程式之執行而改變的,這類的資料我們就稱之為常數。 • 將固定不變的數設定為常數具有以下幾點好處: • 讓程式更容易閱讀。 • 減少程式發生錯誤的機率。 • 使程式在修正時較為容易。
4-3-4Visual Basic的資料型態 • 在Visual Basic中,常數可概分為兩種: • 使用者自定的常數:使用者根據程式的需要自行設定,例如圓周率π=3.14159便是。 • Visual Basic預設(內定)的常數:由Visual Basic事先定義好的常數,這類的常數名稱皆以vb這兩個英文字母為開頭來命名,例如vbOKOnly、vbYesNo、vbKeyUp、vbKeyTab…等皆是。在使用Visual Basic預設的常數時,並不需要事先宣告,而是可以直接使用的。
4-3-4Visual Basic的資料型態 • Const敘述 • 格式:Const 常數名稱 [As 常數的資料型態] = 常數的設定值 • 功能:宣告常數的資料型態及其設定值。 • 說明: • Const及As都屬於保留字,是用來提示程式接下來要宣告某一個常數。 • 常數名稱的命名規則和變數名稱相同。 • 常數的資料型態種類同變數。 • 常數一旦宣告後,若於程式中進行修改,會出現「編譯錯誤:不可指定至常數」的錯誤訊息。
4-3-4Visual Basic的資料型態 • MsgBox敘述 • 格式一:變數 = MsgBox(訊息文字,[按鈕種類+訊息圖示],[標題文字]) • 格式二:MsgBox 訊息內容, [按鈕種類+訊息圖示], [標題文字] • 功能:用來顯示錯誤、警告…等訊息的交談視窗。 • 說明: • MsgBox有兩種使用的格式。 • 訊息文字:要顯示在視窗中的內容。 • 按鈕種類:參考次頁表一。 • 訊息圖示:參考次次頁表二。 • 按鈕種類和訊息圖示可不設定,而若同時設定,則兩個參數值必須相加。 • 標題文字:對交談窗標題列的標題文字(可省略不寫)。 • 變數:當使用者按下按鈕後,所傳回的按鈕值,參考次三頁表三。
4-3-4Visual Basic的資料型態 • 表一:按鈕種類
4-3-4Visual Basic的資料型態 • 表二:訊息圖示
4-3-4Visual Basic的資料型態 • 表三:按鈕回傳值
4-3-4Visual Basic的資料型態 • InputBox敘述 • 格式:變數 =InputBox(訊息文字, [標題文字], [預設文字]) • 功能:將鍵盤上所輸入的文字,指定到對應的變數中。 • 說明: • 訊息文字:要顯示在視窗中的內容。 • 標題文字:對話視窗標題列的標題文字(可省略不寫)。 • 預設文字:文字輸入區所預設會顯示的文字(可省略不寫)。 • 變數:當使用者按下「確定」鈕後,變數值會等於使用者所輸入的內容。
4-3-5 運算式與運算子 • 一個運算式是由運算元及運算子所組成。 • 在運算式中做為運算資料者就稱之為運算元,運算元可以是變數、常數或函數。 • 介於不同運算元之間的符號就稱之為運算子。 • 以5+6-4這個運算式為例,5、6、4就是運算的資料,因此是運算元,而加號+和減號-則是運算子。
4-3-5 運算式與運算子 • 算術運算子:主要是用來做數值計算使用,和一般我們在數學上所使用的符號並沒什麼不同,每個運算子有自己算計優先順序。 • 在算術運算式中,等號=並不是數學上等於的意思,而是具有設定或指定的含意存在。
4-3-5 運算式與運算子 • 關係運算子:關係運算子又稱為比較運算子,是用來比較兩個運算元之間的大小關係或是否相等,運算的結果只有兩個:不是真(True)就是假(False)。 • 所有關係運算子的優先順序相同,因此在計算時是依照由左而右的方式來比較。 • 關係運算式中的等號代表等於。