第6章結構化程式設計基礎

2022-08-19 12:36:04 字數 4549 閱讀 1605

在vfp互動方式下,除了通過命令視窗、系統選單和工具對vfp進行操作外,還可以通過程式方式執行較複雜的資料處理任務。vfp程式設計包括結構化程式設計和物件導向程式設計。結構化程式設計是傳統的程式設計方法,是物件導向程式設計的基礎。

程式是指能夠完成一定任務的一組有序命令的集合。程式中的命令也稱為語句。程式以檔案形式儲存在外部儲存器中。與命令方式相比,程式方式有如下優點:

便於儲存、編輯和執行:以程式檔案形式儲存一組語句;每次啟動vfp後,不需要重複輸入程式中的語句,只要開啟程式檔案就可以對其進行修改;執行相應的程式檔案就是執行程式中的相關語句,並且可以多次執行乙個程式。

層次清晰、功能模組化:允許在乙個程式中呼叫其他子程式,構成程式系統,以便完成更複雜的處理任務。

【 例 6.1 】編寫求數n的階乘程式,存於檔案e6_中。

操作步驟為:首先,在命令視窗中輸入:modify command e6_1命令開啟程式編輯器。然後,輸入下列語句(不輸入行號),如圖6.1。

1) * 求數n的階乘,即 s=1×2×……×(n-1)×n

2) input 」輸入整數:」to n && 執行程式時,使用者輸入的數儲存在變數n中

3) if n<1 && 若n小於1,則執行第4和 5行語句;否則,轉到第7行繼續執行

4)  ? '輸入的數:',n,'不能小於1'

5)  cancel

6) endif

7) store 1 to m,s

8) do while m<=n && 當m小於或等於n時,執行第9和第10行語句

&& 直到m大於n時,轉到第12行繼續執行

9) s=s*m

10) m=m+1

11) enddo

12) ? n,」的階乘是:」,s

最後,單擊「執行」常用工具。

程式說明:

第1行:注釋語句。它是非執行語句,並不影響程式的執行結果。

程式設計時可以增加一些說明資訊作為注釋,為人們閱讀程式提供參考資訊。在語句的末尾也可以用「&&」開頭的注釋,如第2行的注釋。

第2行:程式執行時,通過鍵盤輸入資料,並將輸入資料儲存在變數n中。

第3行:分支結構的開始語句,若n的值小於1,則先執行第4、5行,再執行第7行及後面的語句;否則,直接執行第7行及後面的語句。

第5行:結束程式的執行。

第6行:分支結構的結束語句,與第3行語句一起構成分支結構。

第8行:迴圈結構的開始語句,當m的值小於或等於n時,執行第9、10行語句,直到m大於n時,轉去執行第12行語句。

第11行:迴圈結構的結束語句,與第8行語句一起構成迴圈結構。執行到此語句時,轉去執行對應的(第8行)迴圈開始語句。

由此可見,在執行程式的過程中,是否執行某些語句,取決於條件是否滿足。如:當變數n小於1時,會執行第4和第5行;而當變數n大於或等於1時,越過第4和第5行從第7行繼續向下執行,這種程式結構稱為分支結構。

執行程式中,有些語句也可能重複執行多次。如:只要m小於或等於n,就執行1次第9和第10行語句,這種程式結構稱為迴圈結構。

vfp源程式由vfp命令或程式中的專用語句組成,可以用windows的「記事本」或vfp的專用程式編輯器進行建立或修改vfp源程式,它是一種文字檔案,其副檔名是prg。當使用者要完成某項任務時,就可以執行對應的程式。

通過vfp專用程式編輯器,可以建立和編輯程式,系統預設檔案的擴充套件名為prg。

方法一:「檔案」選單→「新建」→選擇「程式」→「新建檔案」。進入程式編輯器,vfp預設程式檔名為「程式1」,在儲存程式時,可以為其改名。

方法二:「新建」常用工具,其它操作同方法一。

方法三:在命令視窗中執行命令。

命令格式:modify command [《程式檔名》]

命令說明:用於建立和編輯程式檔案:

(1)modify command:其執行過程同方法一。

(2)modify command 《程式檔名》:在命令中指定程式檔名。若檔案已存在,則進入程式編輯器時將開啟檔案,供使用者編輯;否則,按指定的檔名建立乙個程式檔案。

方法四:專案管理器→「**」選項卡→選擇「程式」項→「新建」。

【 例 6.2 】建立例 6.1中的程式檔案e6_

modify command e6_1

在vfp的程式編輯器下,應該用下列方法儲存程式:

方法一:「檔案」選單→「儲存」,儲存檔案,不關閉程式編輯器。

方法二:「儲存」常用工具,其它操作同方法一。

方法三:按ctrl+w鍵,儲存檔案的同時關閉程式編輯器。

方法四:關閉程式編輯器視窗時,系統將提示使用者是否儲存檔案。

如果在建立程式檔案時沒給檔案命名,則儲存檔案時,系統將開啟「另存為」對話方塊,允許使用者指定檔案儲存位置和檔名。

開啟已有的源程式檔案進行編輯的方法有:

方法一:「檔案」選單→「開啟」→選擇「檔案型別」為「程式」→選擇或鍵入程式檔名→「確定」。

方法二:「開啟」常用工具,其它操作同方法一。

方法三:在命令視窗中執行命令:modify command 《程式檔名》 | ?。

使用「?」,將彈出「開啟」檔案對話方塊,選擇要開啟的程式檔名。

方法四:專案管理器→「**」選卡→展開「程式」項→選擇程式檔名→「修改」。

執行程式就是按照程式的內部控制結構執行檔案中的相關語句序列。

在vfp中,可以執行源程式(prg)、編譯程式(fxp)、應用程式(app)和可執行程式(exe)4種程式檔案。

(1)源程式(prg):源程式(prg)是文字檔案,可以對其內容進行修改。只要有源程式檔案,就可以生成其他3種程式檔案。

在執行源程式檔案時,系統自動生成相同檔案主名的編譯程式檔案(fxp)。

(2)編譯程式(fxp):每個源程式檔案(prg)都有對應的編譯程式檔案(fxp),如:源程式e6_對應的編譯程式檔案是e6_執行編譯程式(fxp)比執行源程式(prg)的速度快。

(3)應用程式(app):由多個檔案(包括程式、表單和選單等)連線成乙個應用程式檔案(擴充套件名為app),此檔案便於程式的執行和管理。

這三種檔案都是在vfp環境下執行,即必須安裝vfp系統才能執行程式。適用於除錯和維護程式階段。

(4)可執行程式(exe):將多個檔案(包括程式、表單和選單等)連線成乙個可執行程式檔案(exe),此種檔案可以脫離vfp環境執行,以便程式發行。

當執行乙個源程式(prg)時,系統自動將其編譯為編譯程式(fxp)。在vfp中允許只編譯而不執行程式,即由源程式檔案(prg)生成編譯程式(fxp)檔案。操作方法如下:

方法一:在程式編輯器中,「程式」選單→「編譯」。

方法二:「程式」選單→「編譯」→選擇「檔案型別」為「程式」→選擇程式檔名→「編譯」。

在vfp中,執行源程式檔案(prg)和編譯程式檔案(fxp)的方法如下:

方法一:在程式編輯器中,「程式」選單→「執行」或「執行」常用工具「!」。

方法二:「程式」選單→「執行」→選擇「檔案型別」為「程式」→選擇或輸入程式檔名→「執行」。

方法三:在程式或命令視窗中執行vfp命令。

命令格式:do 《程式檔名》

命令說明:當源程式(prg)和編譯程式(fxp)檔案同時存在時,系統將執行距當前時間最近的程式檔案。程式副檔名可以省略。

程式中經常涉及到資料的輸入和輸出操作。資料輸入指在執行程式時臨時輸入資料並賦值給變數。資料輸出是將表示式的值輸出到顯示器和印表機等輸出裝置上。

命令格式:accept [《字元表示式》] to 《記憶體變數》

命令說明:當程式執行到此語句時,系統先輸出字元表示式的值,然後,等待輸入字串。此語句將輸入的符號都作為字元型資料儲存到記憶體變數中。

若輸入資料時包含字元常數定界符,則系統將定界符也作為字串的一部分。

(1)字元表示式:將字元表示式的值作為執行到此語句時的提示資訊。無此項,則不輸出任何資訊。

(2)記憶體變數:當使用者按回車鍵結束輸入時,系統將輸入的字串賦值給記憶體變數,然後程式繼續執行後面的語句;若不輸入任何字元,直接按回車鍵,則將空字元賦值給記憶體變數。

【 例 6.3 】e6_

accept 」請輸入學號:」 to xh

? 」輸入的學號是:」 +xh

執行此程式後,首先在螢幕上顯示「請輸入學號:」,然後等待使用者鍵入資料。若使用者鍵入:102,按回車鍵後,則系統將字串「102」賦值給記憶體變數xh。

命令格式:wait [《字元表示式》] [to 《記憶體變數》][window [at 《行》,《列》]]

[nowait][clear|noclear][timeout 《數值表示式》]

命令說明:執行到此語句時,程式暫停執行,直到按某個鍵或單擊滑鼠後才繼續執行執行後面的語句。

(1)字元表示式:其值作為執行到此語句時的提示資訊。若省略此項,則系統提示「按任意鍵繼續……」。

(2)to 《記憶體變數》:當鍵入乙個字元後,該字元作為字元型資料賦值給記憶體變數。若只按回車鍵或單擊滑鼠,則將空字元賦給記憶體變數。省略to 《記憶體變數》,則不保留輸入的字元。

(3)window at 《行》,《列》:省略window,提示資訊顯示在vfp主視窗或應用程式視窗;使用window項,則在vfp主視窗的右上角彈出提示資訊視窗。也可以使用at 《行》,《列》指定提示資訊視窗的開始位置。

(4)window和nowait:彈出提示視窗後,程式不暫停,即不等使用者按鍵,就繼續執行後面的語句。

第五章結構化程式設計基礎練習題

18 根據變數作用域的不同,可以分為變數變數和變數。19 當私有變數和上層模組中的變數同名時,可採用的方法,使子句程式中的變數與上層模組中的變數同名而不同值,格式為 20 子程式與自定義函式的區別在於必須有乙個返回值,而則不一定有返回值。二 選擇題 1 以下哪種方式不能執行程式檔案 a 選單方式下的...

第6章迴圈結構程式設計習題及答案

第6章迴圈結構程式設計 6 1 比較while語句 do while語句和for語句的異同。答 1 while語句 do while語句用於條件迴圈,for語句用於計數迴圈。2 while語句 for語句是先判斷迴圈條件,後執行迴圈體,如果迴圈條件一開始就不成立,則迴圈體一次也不被執行 而do wh...

第8章程式設計基礎

一 是非題。和loop作用相同,都能終止迴圈。a.對b.錯 2.自定義函式與過程檔案的不同在於自定義函式必須返回乙個值。a.對b.錯 語句只能接收字元型常量。a.對b.錯 4.不管是過程還是函式,接收引數的命令必須出現在被調程式的第一行。a.對b.錯 5.過程檔案可以由若干個過程構成,而過程必須放在...