程序設(shè)計(jì)基礎(chǔ)_第1頁
程序設(shè)計(jì)基礎(chǔ)_第2頁
程序設(shè)計(jì)基礎(chǔ)_第3頁
程序設(shè)計(jì)基礎(chǔ)_第4頁
程序設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩127頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、2021-10-211程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)2021-10-212本章主要內(nèi)容本章主要內(nèi)容l程序設(shè)計(jì)的基本概念程序設(shè)計(jì)的基本概念l程序文件建立與運(yùn)行程序文件建立與運(yùn)行 l三種程序控制結(jié)構(gòu)三種程序控制結(jié)構(gòu) l多模塊程序多模塊程序 l程序調(diào)試程序調(diào)試 2021-10-213程序設(shè)計(jì)的基本概念程序設(shè)計(jì)的基本概念一、一、vfpvfp的工作方式的工作方式l命令工作方式(或交互工作方式)命令工作方式(或交互工作方式) 通過菜單選擇的方法或在命令窗口中逐條輸入通過菜單選擇的方法或在命令窗口中逐條輸入命令的方法來執(zhí)行的。命令的方法來執(zhí)行的。l程序工作方式程序工作方式 根據(jù)解決實(shí)際問題的需要,將一系列符合根據(jù)

2、解決實(shí)際問題的需要,將一系列符合visual foxprovisual foxpro要求的命令按一定的邏輯結(jié)構(gòu)編排要求的命令按一定的邏輯結(jié)構(gòu)編排成一個(gè)完整的應(yīng)用程序,然后輸入到計(jì)算機(jī)內(nèi)自動成一個(gè)完整的應(yīng)用程序,然后輸入到計(jì)算機(jī)內(nèi)自動地、連續(xù)地加以執(zhí)行。地、連續(xù)地加以執(zhí)行。 2021-10-214程序設(shè)計(jì)的基本概念程序設(shè)計(jì)的基本概念二、二、 vfpvfp的編程方式的編程方式l 面向過程編程方式面向過程編程方式 用結(jié)構(gòu)化編程語言來編寫結(jié)構(gòu)化的程序,它把用結(jié)構(gòu)化編程語言來編寫結(jié)構(gòu)化的程序,它把一個(gè)復(fù)雜的程序分成較小的過程,每個(gè)過程可以單一個(gè)復(fù)雜的程序分成較小的過程,每個(gè)過程可以單獨(dú)進(jìn)行調(diào)試。獨(dú)進(jìn)行調(diào)

3、試。l 面向?qū)ο缶幊谭绞矫嫦驅(qū)ο缶幊谭绞?用面向?qū)ο蟮募夹g(shù)編程,它把編程工作主要集用面向?qū)ο蟮募夹g(shù)編程,它把編程工作主要集中在描述的對象上,程序是事件驅(qū)動的,在執(zhí)行過中在描述的對象上,程序是事件驅(qū)動的,在執(zhí)行過程中,等待的是一個(gè)事件程中,等待的是一個(gè)事件。 對于制作簡單短小的應(yīng)用程序,對于制作簡單短小的應(yīng)用程序,使用過程編程方式比較容易,使用過程編程方式比較容易,同時(shí),這也是面向?qū)ο缶幊谭酵瑫r(shí),這也是面向?qū)ο缶幊谭绞降幕A(chǔ)。本章重點(diǎn)介紹面向式的基礎(chǔ)。本章重點(diǎn)介紹面向過程的程序設(shè)計(jì)。過程的程序設(shè)計(jì)。 2021-10-215程序設(shè)計(jì)的基本概念程序設(shè)計(jì)的基本概念三、程序設(shè)計(jì)的步驟三、程序設(shè)計(jì)的步驟

4、分析問題或任務(wù),總結(jié)或抽象出問題的數(shù)學(xué)模型分析問題或任務(wù),總結(jié)或抽象出問題的數(shù)學(xué)模型根據(jù)數(shù)學(xué)模型確定解決問題的算法思想根據(jù)數(shù)學(xué)模型確定解決問題的算法思想確定要建立的數(shù)據(jù)表或數(shù)據(jù)庫的基本結(jié)構(gòu)及其數(shù)據(jù)表之間確定要建立的數(shù)據(jù)表或數(shù)據(jù)庫的基本結(jié)構(gòu)及其數(shù)據(jù)表之間的關(guān)系的關(guān)系畫出程序流程圖畫出程序流程圖編寫程序,實(shí)現(xiàn)功能要求,并在計(jì)算機(jī)上調(diào)試通過編寫程序,實(shí)現(xiàn)功能要求,并在計(jì)算機(jī)上調(diào)試通過 用典型數(shù)據(jù)對所編寫的程序進(jìn)行測試,驗(yàn)證程序的可靠性用典型數(shù)據(jù)對所編寫的程序進(jìn)行測試,驗(yàn)證程序的可靠性 編寫使用說明書,整理有關(guān)資料,進(jìn)行總結(jié)編寫使用說明書,整理有關(guān)資料,進(jìn)行總結(jié) 2021-10-2166.1 6.1

5、程序文件建立與運(yùn)行程序文件建立與運(yùn)行l(wèi)程序文件程序文件程序是由命令組成的程序是由命令組成的asciiascii碼文本文件,所以碼文本文件,所以程序文件也稱為命令文件。該文件可用任何文本編程序文件也稱為命令文件。該文件可用任何文本編輯器或字處理軟件來建立。輯器或字處理軟件來建立。 l程序文件擴(kuò)展名程序文件擴(kuò)展名源文件的擴(kuò)展名是源文件的擴(kuò)展名是.prg.prg,程序在運(yùn)行時(shí),會產(chǎn),程序在運(yùn)行時(shí),會產(chǎn)生主文件名與生主文件名與.prg.prg程序主文件名相同,擴(kuò)展名程序主文件名相同,擴(kuò)展名為為.fxp.fxp的目標(biāo)文件。的目標(biāo)文件。 2021-10-2176.1.1 6.1.1 程序文件建立程序文件建

6、立 建立程序最簡單的方法是用系統(tǒng)本建立程序最簡單的方法是用系統(tǒng)本身提供的編輯器。身提供的編輯器。 vfpvfp有有2 2種方式進(jìn)入程種方式進(jìn)入程序編輯器窗口序編輯器窗口:菜單方式和命令方式:菜單方式和命令方式 2021-10-218菜單方式建立程序文件菜單方式建立程序文件 用菜單建立程序的步驟為:用菜單建立程序的步驟為: 單擊菜單單擊菜單“文件文件”“新建新建”命令或者單擊常用命令或者單擊常用工具欄的工具欄的“新建新建”按鈕,打開按鈕,打開“新建新建”對話框。對話框。 打開打開“程序程序1”1”的程序編輯新窗口。的程序編輯新窗口。2021-10-219命令方式建立程序文件命令方式建立程序文件格

7、式:格式:modify command modify command |?|?功能:打開程序編輯窗口,從中可以修改或功能:打開程序編輯窗口,從中可以修改或 創(chuàng)建程序文件。創(chuàng)建程序文件。幾點(diǎn)說明:幾點(diǎn)說明:l :指定修改或創(chuàng)建的程序文件名。:指定修改或創(chuàng)建的程序文件名。l如果用如果用modify command ?modify command ?,則出現(xiàn),則出現(xiàn)“打開打開”對對話框,如圖所示。話框,如圖所示。2021-10-2110命令方式建立程序文件命令方式建立程序文件 在用命令建立程序文件時(shí),最好在命令后加上程在用命令建立程序文件時(shí),最好在命令后加上程序文件名,這樣可以直接創(chuàng)建或修改用戶給出

8、的程序文件名,這樣可以直接創(chuàng)建或修改用戶給出的程序文件。序文件。 建好的文件將保存在建好的文件將保存在“默認(rèn)目錄默認(rèn)目錄”指定的文件夾指定的文件夾下,默認(rèn)的擴(kuò)展名是下,默認(rèn)的擴(kuò)展名是.prg.prg。如果需要保存在其它文。如果需要保存在其它文件夾下,還可在命令中指定路徑。如:件夾下,還可在命令中指定路徑。如: modi comm d:excerciseexamplemodi comm d:excerciseexample2021-10-2111程序輸入與保存程序輸入與保存 例例 6-1 6-1 在程序編輯窗口輸入如下在程序編輯窗口輸入如下6 6條命令。條命令。clearclear & &將屏幕

9、輸出窗口內(nèi)容清空將屏幕輸出窗口內(nèi)容清空a=12a=12 & &將數(shù)值將數(shù)值1212賦值給變量賦值給變量a ab=18b=18 & &將數(shù)值將數(shù)值1818賦值給變量賦值給變量b bc=a+bc=a+b & &將變量將變量a a與與b b和計(jì)算出來,賦值給變量和計(jì)算出來,賦值給變量c c?a,b,c &?a,b,c &輸出變量輸出變量a a、b b、c c的值的值return &return &表示程序結(jié)束表示程序結(jié)束2021-10-2112程序輸入與保存程序輸入與保存在輸入一個(gè)程序時(shí),請用戶注意以下幾點(diǎn):在輸入一個(gè)程序時(shí),請用戶注意以下幾點(diǎn):l一個(gè)命令語句中只能有一個(gè)命令動詞。一個(gè)命令語句中只能

10、有一個(gè)命令動詞。l每輸入完一個(gè)語句按回車鍵表示該語句結(jié)束。每輸入完一個(gè)語句按回車鍵表示該語句結(jié)束。l程序中用到的所有作為程序中用到的所有作為“分隔符號分隔符號”的標(biāo)點(diǎn)符號的標(biāo)點(diǎn)符號一律用英文半角符號。一律用英文半角符號。l輸入或修改結(jié)束按輸入或修改結(jié)束按“ctrl+w”存盤,存盤,“ctrl+q”取取消本次輸入或修改結(jié)果。還可使用消本次輸入或修改結(jié)果。還可使用“文件文件”“另另存為存為”命令將編輯好的程序以另外的名稱存盤。命令將編輯好的程序以另外的名稱存盤。2021-10-21136.1.2 6.1.2 程序運(yùn)行程序運(yùn)行l(wèi) 菜單方式運(yùn)行程序菜單方式運(yùn)行程序 單擊菜單單擊菜單“程序程序”“運(yùn)行運(yùn)

11、行”命令,打開命令,打開“運(yùn)運(yùn)行行”對話框。選定定要執(zhí)行的程序文件,如選擇:對話框。選定定要執(zhí)行的程序文件,如選擇:cx1 cx1 ,單擊,單擊“運(yùn)行運(yùn)行”按鈕,即可運(yùn)行程序。按鈕,即可運(yùn)行程序。2021-10-21146.1.2 6.1.2 程序運(yùn)行程序運(yùn)行l(wèi) 命令方式運(yùn)行程序命令方式運(yùn)行程序格式:格式:do do 功能:將指定的程序文件調(diào)入內(nèi)存并運(yùn)行。功能:將指定的程序文件調(diào)入內(nèi)存并運(yùn)行。如在命令窗口里輸入:如在命令窗口里輸入:do cx1do cx1將在屏幕輸出程序計(jì)算結(jié)果:將在屏幕輸出程序計(jì)算結(jié)果: 12 18 3012 18 302021-10-21156.1.2 6.1.2 程序運(yùn)

12、行程序運(yùn)行l(wèi) 單擊常用工具欄上單擊常用工具欄上“!”!”命令按鈕執(zhí)行該程序命令按鈕執(zhí)行該程序 在程序打開并且為當(dāng)前程序的情況下,在程序打開并且為當(dāng)前程序的情況下,單擊常用工具欄上單擊常用工具欄上“!”!”命令按鈕可執(zhí)行該程命令按鈕可執(zhí)行該程序。序。 2021-10-21166.1.2 6.1.2 程序運(yùn)行程序運(yùn)行l(wèi) 程序錯(cuò)誤對話框程序錯(cuò)誤對話框 在程序執(zhí)行過程中,如果程序出現(xiàn)運(yùn)行錯(cuò)誤或用戶按下了在程序執(zhí)行過程中,如果程序出現(xiàn)運(yùn)行錯(cuò)誤或用戶按下了“esc”esc”鍵,將鍵,將彈出彈出“程序錯(cuò)誤程序錯(cuò)誤”對話框,如圖所示。對話框,如圖所示。 單擊單擊“取消取消”按 鈕 可 取 消按 鈕 可 取 消

13、程序的執(zhí)行程序的執(zhí)行。 單擊單擊“掛起掛起”按鈕,可暫時(shí)停按鈕,可暫時(shí)停止程序的運(yùn)行,可在命令窗口止程序的運(yùn)行,可在命令窗口里輸入命令:里輸入命令:resumeresume,或單擊,或單擊菜單菜單“程序程序”“繼續(xù)執(zhí)行繼續(xù)執(zhí)行”命令可繼續(xù)執(zhí)行程序命令可繼續(xù)執(zhí)行程序 。單擊單擊“忽略忽略”命令命令按鈕忽略程序的錯(cuò)按鈕忽略程序的錯(cuò)誤繼續(xù)執(zhí)行程序誤繼續(xù)執(zhí)行程序 。單擊單擊“幫助幫助”命命令按鈕可提示相令按鈕可提示相關(guān)幫助信息。關(guān)幫助信息。 2021-10-21176.1.3 6.1.3 程序輔助命令程序輔助命令 以前介紹的所有以前介紹的所有visual foxprovisual foxpro命令都可

14、命令都可以用在程序設(shè)計(jì)中。另外以用在程序設(shè)計(jì)中。另外visual foxprovisual foxpro還提還提供了一些輔助命令,這些命令能使程序更好供了一些輔助命令,這些命令能使程序更好地閱讀和有效地運(yùn)行。本小節(jié)介紹:地閱讀和有效地運(yùn)行。本小節(jié)介紹:l 程序注釋命令程序注釋命令 l 程序結(jié)束命令程序結(jié)束命令l 信息對話框函數(shù)信息對話框函數(shù)messagebox messagebox l 運(yùn)行環(huán)境設(shè)置命令運(yùn)行環(huán)境設(shè)置命令 2021-10-2118程序注釋命令程序注釋命令 visual foxprovisual foxpro提供了提供了3 3種注釋命令:種注釋命令:格式格式1 1: note no

15、te 格式格式2 2: * * 功能:使功能:使 notenote或或* * 后面的內(nèi)容成為注釋內(nèi)容。后面的內(nèi)容成為注釋內(nèi)容。格式格式3 3: & & 功能:功能: 對對&左面的命令做出解釋或給左面的命令做出解釋或給出運(yùn)行結(jié)果,又稱為行尾注釋命令。出運(yùn)行結(jié)果,又稱為行尾注釋命令。 2021-10-2119格式格式1 1:returnreturn功能:返回到上一級模塊。如果本程序是以菜單方功能:返回到上一級模塊。如果本程序是以菜單方式或在命令窗口中調(diào)用執(zhí)行的,則返回到命令交互式或在命令窗口中調(diào)用執(zhí)行的,則返回到命令交互狀態(tài)。狀態(tài)。格式格式2 2:cancelcancel功能:終止程序運(yùn)行,清除程

16、序中的私有變量,返功能:終止程序運(yùn)行,清除程序中的私有變量,返回到命令窗口?;氐矫畲翱?。格式格式3 3:quitquit功能:關(guān)閉功能:關(guān)閉visual foxprovisual foxpro,返回到操作系統(tǒng)。,返回到操作系統(tǒng)。程序結(jié)束命令程序結(jié)束命令 2021-10-2120信息對話框函數(shù)信息對話框函數(shù)messageboxmessagebox messagebox messagebox函數(shù)用于顯示一個(gè)信息對話框,可以在函數(shù)用于顯示一個(gè)信息對話框,可以在程序運(yùn)行過程中,顯示一些信息,例如提示信息、錯(cuò)誤程序運(yùn)行過程中,顯示一些信息,例如提示信息、錯(cuò)誤信息等。其構(gòu)成如圖所示。信息等。其構(gòu)成如圖所

17、示。信息對話框的信息對話框的“標(biāo)標(biāo)題題”部分。部分。信息對話框信息對話框的的“圖標(biāo)圖標(biāo)”部分。部分。信 息 對 話 框 的信 息 對 話 框 的“提示信息提示信息”部部分。分。信 息 對 話 框 的信 息 對 話 框 的“按鈕按鈕”部分。部分。2021-10-2121信息對話框函數(shù)信息對話框函數(shù)messageboxmessagebox格式:格式: messagebox(messagebox(,)2)功能:供用戶定義信息對話框,按下相應(yīng)的按鈕返功能:供用戶定義信息對話框,按下相應(yīng)的按鈕返回一個(gè)數(shù)值?;匾粋€(gè)數(shù)值。說明:說明:l 用于指定在對話框中顯示的信息用于指定在對話框中顯示的信息文本。文本。l

18、 用于根據(jù)表用于根據(jù)表6-1的內(nèi)容設(shè)置對話框中的內(nèi)容設(shè)置對話框中的按鈕、圖標(biāo)和默認(rèn)按鈕,缺省該參數(shù)表示取的按鈕、圖標(biāo)和默認(rèn)按鈕,缺省該參數(shù)表示取0。2021-10-2122信息對話框函數(shù)信息對話框函數(shù)messageboxmessagebox2021-10-2123信息對話框函數(shù)信息對話框函數(shù)messageboxmessageboxl 2用于指定對用于指定對話框標(biāo)題欄的顯示文本。話框標(biāo)題欄的顯示文本。缺省該參數(shù)表示在標(biāo)題欄缺省該參數(shù)表示在標(biāo)題欄顯示顯示“microsoft visual microsoft visual foxpro”foxpro”。 l函數(shù)值返回一個(gè)數(shù)值,用函數(shù)值返回一個(gè)數(shù)值,

19、用戶可根據(jù)操作時(shí)按下的按戶可根據(jù)操作時(shí)按下的按鈕來獲得相應(yīng)的返回值,鈕來獲得相應(yīng)的返回值,返回值見表返回值見表6-26-2,用戶編程,用戶編程時(shí)根據(jù)返回值來設(shè)置動作。時(shí)根據(jù)返回值來設(shè)置動作。 2021-10-2124信息對話框函數(shù)信息對話框函數(shù)messageboxmessagebox舉例舉例 例例 6-3 6-3 在信息對話框中使用在信息對話框中使用2 2個(gè)按鈕個(gè)按鈕“是是”和和“否否”,使用使用“問號問號”圖標(biāo),默認(rèn)按鈕為第二個(gè)按鈕,顯示圖標(biāo),默認(rèn)按鈕為第二個(gè)按鈕,顯示“真真的要退出系統(tǒng)嗎?的要退出系統(tǒng)嗎?”信息,對話框標(biāo)題為信息,對話框標(biāo)題為“提示信息提示信息”。 在命令窗口里輸入:在命令

20、窗口里輸入:a=messagebox(a=messagebox(真的要退出系統(tǒng)嗎?真的要退出系統(tǒng)嗎?,4+32+256,4+32+256,提示信息提示信息) 就會顯示如圖所示的信息對話框。就會顯示如圖所示的信息對話框。2021-10-2125運(yùn)行環(huán)境設(shè)置命令運(yùn)行環(huán)境設(shè)置命令 在程序中運(yùn)用一些環(huán)境設(shè)置命令,可使程在程序中運(yùn)用一些環(huán)境設(shè)置命令,可使程序正常而高效地運(yùn)行。運(yùn)行環(huán)境設(shè)置命令大序正常而高效地運(yùn)行。運(yùn)行環(huán)境設(shè)置命令大多數(shù)是由多數(shù)是由setset命令設(shè)置的,它一般有命令設(shè)置的,它一般有onon和和offoff兩個(gè)選項(xiàng),當(dāng)為兩個(gè)選項(xiàng),當(dāng)為onon狀態(tài)時(shí),設(shè)置有效,為狀態(tài)時(shí),設(shè)置有效,為offo

21、ff狀態(tài)時(shí)設(shè)置無效。有的狀態(tài)時(shí)設(shè)置無效。有的setset命令用命令用toto指定設(shè)置指定設(shè)置值。常用的環(huán)境設(shè)置命令如表值。常用的環(huán)境設(shè)置命令如表6-36-3所示。所示。 2021-10-2126運(yùn)行環(huán)境設(shè)置命令運(yùn)行環(huán)境設(shè)置命令 2021-10-21276.1.4 6.1.4 交互式輸入命令交互式輸入命令 根據(jù)解決實(shí)際問題的需要,往往在程序運(yùn)根據(jù)解決實(shí)際問題的需要,往往在程序運(yùn)行的過程中,由用戶向程序輸入一些數(shù)據(jù)或行的過程中,由用戶向程序輸入一些數(shù)據(jù)或信息,完成這種功能的一些命令稱為交互式信息,完成這種功能的一些命令稱為交互式輸入命令。輸入命令。visual foxprovisual foxpr

22、o提供了多種交互式提供了多種交互式輸入命令。本小節(jié)介紹三種命令:輸入命令。本小節(jié)介紹三種命令:l acceptacceptl input inputl wait wait2021-10-2128字符型數(shù)據(jù)輸入命令字符型數(shù)據(jù)輸入命令acceptaccept 格式:格式:accept accept to to 功能:暫停程序的執(zhí)行,等待用戶輸入一個(gè)字符串給變量。功能:暫停程序的執(zhí)行,等待用戶輸入一個(gè)字符串給變量。說明:說明:(1 1),是在屏幕上出現(xiàn)的提示信息。它可以是字,是在屏幕上出現(xiàn)的提示信息。它可以是字符串,此時(shí)必須用雙引號將其括起來,也可以是字符型內(nèi)存變符串,此時(shí)必須用雙引號將其括起來,也

23、可以是字符型內(nèi)存變量,該內(nèi)存變量必須預(yù)先賦值。量,該內(nèi)存變量必須預(yù)先賦值。(2 2)用戶在鍵盤輸入的任何字符信息都被賦值給)用戶在鍵盤輸入的任何字符信息都被賦值給“內(nèi)存變量內(nèi)存變量”。輸入的數(shù)據(jù)將作為字符型數(shù)據(jù)處理,不需要定界符括起來,如輸入的數(shù)據(jù)將作為字符型數(shù)據(jù)處理,不需要定界符括起來,如果輸入了定界符,則這些定界符也被作為輸入字符的一部分。果輸入了定界符,則這些定界符也被作為輸入字符的一部分。(3 3)輸入完需要的信息后,按)輸入完需要的信息后,按“enter”enter”鍵結(jié)束本命令的輸入。鍵結(jié)束本命令的輸入。如果沒有輸入其他信息,只按回車鍵,將把一個(gè)空字符串賦值如果沒有輸入其他信息,只

24、按回車鍵,將把一個(gè)空字符串賦值給內(nèi)存變量。給內(nèi)存變量。 2021-10-2129acceptaccept使用舉例使用舉例 例例 6-4 6-4 編一程序,將人事數(shù)據(jù)表打開,在程序編一程序,將人事數(shù)據(jù)表打開,在程序運(yùn)行中輸入人員姓名,顯示指定姓名的人員記錄。運(yùn)行中輸入人員姓名,顯示指定姓名的人員記錄。程序代碼如下:程序代碼如下:note note 該程序用于從人事數(shù)據(jù)表中查找用戶指定姓名的人員信息。該程序用于從人事數(shù)據(jù)表中查找用戶指定姓名的人員信息。clearclearuse rsbuse rsbaccept accept 請輸入要查找的姓名:請輸入要查找的姓名: to name to name

25、locate for alltrim(locate for alltrim(姓名姓名)=name)=namedisplaydisplayreturnreturn2021-10-2130表達(dá)式輸入命令表達(dá)式輸入命令inputinput格式:格式:inputinput to to 功能:暫停程序的執(zhí)行,接受用戶輸入合法的表達(dá)式并將表功能:暫停程序的執(zhí)行,接受用戶輸入合法的表達(dá)式并將表達(dá)式的值賦值給內(nèi)存變量。達(dá)式的值賦值給內(nèi)存變量。說明:說明:(1 1),同,同“accept”accept”命令中的命令中的。(2 2)用戶可輸入任何一個(gè)合法的數(shù)值型()用戶可輸入任何一個(gè)合法的數(shù)值型(n n)、字符型

26、)、字符型(c c)、日期型()、日期型(d d)、邏輯型()、邏輯型(l l)表達(dá)式,系統(tǒng)先計(jì)算表)表達(dá)式,系統(tǒng)先計(jì)算表達(dá)式的值并將該值賦值給內(nèi)存變量。達(dá)式的值并將該值賦值給內(nèi)存變量。(3 3)如果輸入字符串信息,則必須加上雙引號或單引號定)如果輸入字符串信息,則必須加上雙引號或單引號定界符,如界符,如abcabc。(4 4)按)按“enter”enter”鍵結(jié)束輸入,如果輸入的是非法表達(dá)式,鍵結(jié)束輸入,如果輸入的是非法表達(dá)式,系統(tǒng)將提示重新輸入。系統(tǒng)將提示重新輸入。2021-10-2131inputinput使用舉例使用舉例 例例 6-5 6-5 已知圓半徑為已知圓半徑為r r,求圓面積,

27、求圓面積s s(要求四舍五入保留(要求四舍五入保留三位小數(shù))。三位小數(shù))。分析:假設(shè)圓的半徑為分析:假設(shè)圓的半徑為r r,則計(jì)算圓面積,則計(jì)算圓面積s s的公式為:的公式為:s=rs=r2 2,計(jì)算圓面積公式的計(jì)算圓面積公式的visual foxprovisual foxpro表達(dá)式為:表達(dá)式為:pi()pi()* *r2 r2 。程。程序代碼如下:序代碼如下:* * 該程序用于計(jì)算用戶指定半徑的圓的面積。該程序用于計(jì)算用戶指定半徑的圓的面積。clearclearinput input 請輸入圓半徑請輸入圓半徑r= to rr= to rs=round(pi()s=round(pi()* *r

28、2,3) r2,3) &pi()&pi()為圓周率函數(shù)為圓周率函數(shù),roundround函數(shù)為四舍五入函數(shù)函數(shù)為四舍五入函數(shù)?該圓半徑為:該圓半徑為:,r,r?該圓面積為:該圓面積為:,s,sreturnreturn2021-10-2132接收單字符命令接收單字符命令waitwait 格式:格式:wait wait to to windows at windows at , timeout timeout nowait nowait功能:暫停程序,用戶按任意鍵或者時(shí)間超過等待功能:暫停程序,用戶按任意鍵或者時(shí)間超過等待的秒數(shù)后,程序繼續(xù)執(zhí)行。如果包含的秒數(shù)后,程序繼續(xù)執(zhí)行。如果包含to to

29、短語,將用戶所按鍵盤字符賦值給指定的內(nèi)存短語,將用戶所按鍵盤字符賦值給指定的內(nèi)存變量。變量。2021-10-2133接收單字符命令接收單字符命令waitwait說明說明(1 1),指定要顯示的自定義信息。若,指定要顯示的自定義信息。若省略該參數(shù),則省略該參數(shù),則 visual foxpro visual foxpro 顯示默認(rèn)的信息顯示默認(rèn)的信息“按任意鍵繼續(xù)按任意鍵繼續(xù)”。如果該參數(shù)為空字符,則不。如果該參數(shù)為空字符,則不顯示信息。顯示信息。(2 2)windowswindows:在:在 visual foxpro visual foxpro 主窗口右上角主窗口右上角的系統(tǒng)信息窗口中,顯示提

30、示信息。如果指定的系統(tǒng)信息窗口中,顯示提示信息。如果指定at at ,,則該窗口在指定屏幕坐標(biāo)位置,則該窗口在指定屏幕坐標(biāo)位置顯示。顯示。2021-10-2134接收單字符命令接收單字符命令waitwait說明說明 (3 3)timeout timeout :指定在執(zhí)行:指定在執(zhí)行 wait wait 命令命令之后,程序暫停的時(shí)間,之后,程序暫停的時(shí)間, 參數(shù)指定等待的參數(shù)指定等待的時(shí)間秒數(shù)。時(shí)間秒數(shù)。(4 4)nowaitnowait子句指在前述指定的子句指在前述指定的windowswindows窗口中顯示窗口中顯示waitwait信息的同時(shí),程序繼續(xù)執(zhí)行而不暫停。信息的同時(shí),程序繼續(xù)執(zhí)行而

31、不暫停。2021-10-2135waitwait使用舉例使用舉例 下列命令將在屏幕下列命令將在屏幕1616行、行、1616列位置處顯示一列位置處顯示一含有提示信息的小窗口,如圖所示,此時(shí)單擊含有提示信息的小窗口,如圖所示,此時(shí)單擊鼠標(biāo)按鍵、按下鍵盤上任意一個(gè)按鍵或小窗口鼠標(biāo)按鍵、按下鍵盤上任意一個(gè)按鍵或小窗口在屏幕上停留在屏幕上停留7 7秒后,從屏幕上消失。秒后,從屏幕上消失。wait wait 請稍后,程序?qū)⒗^續(xù)執(zhí)行請稍后,程序?qū)⒗^續(xù)執(zhí)行.。 windows at 16,16 timeout 7 windows at 16,16 timeout 72021-10-21366.2 6.2 程序

32、控制結(jié)構(gòu)程序控制結(jié)構(gòu) 結(jié)構(gòu)化程序包括三種基本結(jié)構(gòu),即結(jié)構(gòu)化程序包括三種基本結(jié)構(gòu),即l 順序結(jié)構(gòu)順序結(jié)構(gòu)l 選擇結(jié)構(gòu)選擇結(jié)構(gòu)l 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 2021-10-21376.2.1 6.2.1 順序結(jié)構(gòu)順序結(jié)構(gòu) 順序結(jié)構(gòu)是程序設(shè)計(jì)中最基本的順序結(jié)構(gòu)是程序設(shè)計(jì)中最基本的結(jié)構(gòu),該結(jié)構(gòu)按照程序命令出現(xiàn)的結(jié)構(gòu),該結(jié)構(gòu)按照程序命令出現(xiàn)的先后順序依次執(zhí)行。事實(shí)上,如果先后順序依次執(zhí)行。事實(shí)上,如果不進(jìn)行特殊說明,程序中的命令就不進(jìn)行特殊說明,程序中的命令就自動按其前后排列順序執(zhí)行。自動按其前后排列順序執(zhí)行。 2021-10-2138順序結(jié)構(gòu)程序舉例順序結(jié)構(gòu)程序舉例1 1 例例 6-6 6-6 假設(shè)我國假設(shè)我

33、國20072007年國民生產(chǎn)總值為年國民生產(chǎn)總值為200,000200,000億元,按每年平均億元,按每年平均10%10%的速度遞增,編程計(jì)的速度遞增,編程計(jì)算到算到20202020年我國國民生產(chǎn)總值將會達(dá)到多少?年我國國民生產(chǎn)總值將會達(dá)到多少? 國民生產(chǎn)總值計(jì)算公式為:未來值國民生產(chǎn)總值計(jì)算公式為:未來值p1=p1=初值初值p0p0(1+1+速度速度a a)時(shí)間間隔時(shí)間間隔n n 這里,初值這里,初值 p0=200000 p0=200000 億元,速度為億元,速度為 a=0.1a=0.1,時(shí)間間隔時(shí)間間隔 n=2020-2007=13n=2020-2007=13,p1p1為未來待計(jì)算的值。為

34、未來待計(jì)算的值。visual foxprovisual foxpro計(jì)算表達(dá)式為:計(jì)算表達(dá)式為:p1=p0p1=p0* *(1+a)n (1+a)n 。該程序流程圖如圖所示。該程序流程圖如圖所示。 2021-10-2139順序結(jié)構(gòu)程序舉例順序結(jié)構(gòu)程序舉例1 1程序代碼如下:程序代碼如下:clearclearp0=200000p0=200000a=0.1a=0.1n=13n=13p1=p0p1=p0* *(1+a)n(1+a)n?我國我國20072007年的國民生產(chǎn)總值為:年的國民生產(chǎn)總值為:,p0, ,p0, 億元。億元。 ?我國我國20202020年的國民生產(chǎn)總值為:年的國民生產(chǎn)總值為:,p

35、1, ,p1, 億元。億元。 returnreturn2021-10-2140順序結(jié)構(gòu)程序舉例順序結(jié)構(gòu)程序舉例2 2 例例 6-7 6-7 在人事數(shù)據(jù)表中,根據(jù)從屏幕在人事數(shù)據(jù)表中,根據(jù)從屏幕上輸入的職工姓名來查詢該職工的姓名、性上輸入的職工姓名來查詢該職工的姓名、性別、職稱、出生日期、工作日期。別、職稱、出生日期、工作日期。用用acceptaccept命令輸入和命令輸入和? ?命令輸出,程序代命令輸出,程序代碼如下。碼如下。2021-10-2141順序結(jié)構(gòu)程序舉例順序結(jié)構(gòu)程序舉例2 2clearclearuse rsbuse rsbaccept accept 請輸入被查詢職工的姓名:請輸入被

36、查詢職工的姓名: to name to namelocate for alltrim(locate for alltrim(姓名姓名)=name)=name?姓名:姓名:+姓名姓名?性別:性別:+性別性別?職稱:職稱:+職稱職稱?出生日期:出生日期:+dtoc(+dtoc(出生日期出生日期) )?工作日期:工作日期:+dtoc(+dtoc(工作日期工作日期) )useusereturnreturn2021-10-21426.2.2 6.2.2 選擇結(jié)構(gòu)選擇結(jié)構(gòu)選擇結(jié)構(gòu),是一種常用的基本結(jié)構(gòu),是根選擇結(jié)構(gòu),是一種常用的基本結(jié)構(gòu),是根據(jù)所給條件是否為真,選擇執(zhí)行某一分支的據(jù)所給條件是否為真,選擇執(zhí)

37、行某一分支的相應(yīng)操作。按照選擇結(jié)構(gòu)執(zhí)行路徑的多少,相應(yīng)操作。按照選擇結(jié)構(gòu)執(zhí)行路徑的多少,可分為:可分為:l簡單分支結(jié)構(gòu)簡單分支結(jié)構(gòu)l雙分支選擇結(jié)構(gòu)雙分支選擇結(jié)構(gòu)l多分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)2021-10-2143簡單分支結(jié)構(gòu)簡單分支結(jié)構(gòu) 格式:格式: if if 命令序列命令序列 endif endif功能:根據(jù)條件的邏輯值來確定是否執(zhí)行功能:根據(jù)條件的邏輯值來確定是否執(zhí)行 命命令序列令序列 。 2021-10-2144簡單分支結(jié)構(gòu)說明簡單分支結(jié)構(gòu)說明(1 1)根據(jù))根據(jù) 的邏輯值進(jìn)行判斷。如果的邏輯值進(jìn)行判斷。如果 的的邏輯值為邏輯值為.t.t.,就依次執(zhí)行,就依次執(zhí)行 命令序列命令序列

38、,執(zhí)行完后就,執(zhí)行完后就轉(zhuǎn)去執(zhí)行轉(zhuǎn)去執(zhí)行endifendif之后的命令。如果之后的命令。如果 的邏輯值的邏輯值為為.f.f.,則,則ifif 和和endifendif之間的所有命令都不執(zhí)行,之間的所有命令都不執(zhí)行,而直接轉(zhuǎn)到而直接轉(zhuǎn)到endifendif之后的命令。之后的命令。 (2 2)ifif語句和語句和endifendif語句必須成對出現(xiàn),且各占一行。語句必須成對出現(xiàn),且各占一行。(3 3)為了程序閱讀方便,便于以后維護(hù)修改,建議)為了程序閱讀方便,便于以后維護(hù)修改,建議對于對于 命令序列命令序列 部分采取向右縮進(jìn)書寫的方式。部分采取向右縮進(jìn)書寫的方式。2021-10-2145簡單分支結(jié)

39、構(gòu)舉例簡單分支結(jié)構(gòu)舉例1 1 例例 6-8 6-8 鐵路托運(yùn)行李,按規(guī)定每張客鐵路托運(yùn)行李,按規(guī)定每張客票托運(yùn)行李不超過票托運(yùn)行李不超過5050公斤時(shí),每公斤公斤時(shí),每公斤0.250.25元,元,如超過如超過5050公斤,超過部分按每公斤公斤,超過部分按每公斤0.450.45元計(jì)元計(jì)算。編寫一個(gè)程序,把行李重量輸入計(jì)算機(jī),算。編寫一個(gè)程序,把行李重量輸入計(jì)算機(jī),計(jì)算出運(yùn)費(fèi),并打印出付款清單。計(jì)算出運(yùn)費(fèi),并打印出付款清單。 問題分析:設(shè)行李重量為問題分析:設(shè)行李重量為w w公斤,應(yīng)付運(yùn)公斤,應(yīng)付運(yùn)費(fèi)為費(fèi)為p p元,則運(yùn)費(fèi)公式為:元,則運(yùn)費(fèi)公式為: 當(dāng)當(dāng)w50w50, p=0.25p=0.25w

40、w 當(dāng)當(dāng)w w5050, p=50p=500.25+(w-50)0.25+(w-50)0.450.452021-10-2146簡單分支結(jié)構(gòu)舉例簡單分支結(jié)構(gòu)舉例1 1該問題計(jì)算機(jī)程序框圖如該問題計(jì)算機(jī)程序框圖如右右圖所示。圖所示。 程序代碼如下:程序代碼如下:note note 計(jì)算鐵路托運(yùn)行李費(fèi),計(jì)算鐵路托運(yùn)行李費(fèi),w w為行李重量,為行李重量,p p為運(yùn)費(fèi)。為運(yùn)費(fèi)。clearclearinput input 請輸入行李重量:請輸入行李重量: to w to wp=0.25p=0.25* *w wif w50if w50 p=50 p=50* *0.25+(w-50)0.25+(w-50)*

41、*0.450.45endifendif?行李重量為:行李重量為:,w,w,公斤公斤 ?應(yīng)付運(yùn)費(fèi)為:應(yīng)付運(yùn)費(fèi)為:,p,p,元元 returnreturn2021-10-2147簡單分支結(jié)構(gòu)舉例簡單分支結(jié)構(gòu)舉例2 2 例例 6-9 6-9 程序運(yùn)行時(shí),從鍵盤輸入兩個(gè)程序運(yùn)行時(shí),從鍵盤輸入兩個(gè)數(shù)數(shù)a a、b b,如果,如果abab,則將二者的數(shù)據(jù)交換。,則將二者的數(shù)據(jù)交換。程序代碼如下:程序代碼如下:2021-10-2148簡單分支結(jié)構(gòu)舉例簡單分支結(jié)構(gòu)舉例2 2clearclearinput input 請輸入給變量請輸入給變量a a的數(shù)值:的數(shù)值: to a to a input input 請輸

42、入給變量請輸入給變量b b的數(shù)值:的數(shù)值: to b to b ?a?a與與b b交換之前的值分別是:交換之前的值分別是:+alltrim(str(a,10)+,+alltrim(str(b,10)+alltrim(str(a,10)+,+alltrim(str(b,10)if abif ab c=a & c c=a & c為中間變量為中間變量 a=ba=b b=c b=cendifendif?a?a與與b b交換之后的值分別是:交換之后的值分別是:+alltrim(str(a,10)+,+alltrim(str(b,10)+alltrim(str(a,10)+,+alltrim(str(b,

43、10)returnreturn2021-10-2149雙分支選擇結(jié)構(gòu)雙分支選擇結(jié)構(gòu) 格式:格式: if if 命令序列命令序列11 else else 命令序列命令序列22 endif endif功能:根據(jù)條件的邏輯值來決定程序執(zhí)行功能:根據(jù)條件的邏輯值來決定程序執(zhí)行 命命令序列令序列11還是還是 命令序列命令序列22。 2021-10-2150雙分支選擇結(jié)構(gòu)說明雙分支選擇結(jié)構(gòu)說明 (1 1)如果)如果 的邏輯值為的邏輯值為.t.t.,就執(zhí)行,就執(zhí)行 命令序命令序列列11,執(zhí)行完后就轉(zhuǎn)到執(zhí)行,執(zhí)行完后就轉(zhuǎn)到執(zhí)行endifendif之后的命令。如之后的命令。如果果 的邏輯值為的邏輯值為.f.f.

44、,就執(zhí)行,就執(zhí)行 命令序列命令序列22,完,完成后,轉(zhuǎn)去執(zhí)行成后,轉(zhuǎn)去執(zhí)行endifendif之后的命令。之后的命令。(2 2)elseelse語句單獨(dú)占一行,語句單獨(dú)占一行,ifif語句和語句和endifendif語句必語句必須成對出現(xiàn),且各占一行。須成對出現(xiàn),且各占一行。2021-10-2151雙分支選擇結(jié)構(gòu)舉例雙分支選擇結(jié)構(gòu)舉例 例例 6-10 6-10 設(shè)出租車不超過設(shè)出租車不超過2 2公公里時(shí)一律收費(fèi)里時(shí)一律收費(fèi)7 7元錢,超過時(shí)則超過元錢,超過時(shí)則超過部分每公里加收部分每公里加收2.62.6元。試根據(jù)里程元。試根據(jù)里程數(shù)編程計(jì)算并顯示出應(yīng)付車費(fèi)(用數(shù)編程計(jì)算并顯示出應(yīng)付車費(fèi)(用雙分

45、支選擇結(jié)構(gòu)編程)。雙分支選擇結(jié)構(gòu)編程)。程序代碼如下:程序代碼如下:2021-10-2152雙分支選擇結(jié)構(gòu)舉例雙分支選擇結(jié)構(gòu)舉例clearclearinput input 請輸入里程數(shù):請輸入里程數(shù): to k to kif k=2if k=2 cf=7 cf=7elseelse cf=7+(k-2) cf=7+(k-2)* *2.62.6endifendif?里程為:里程為:,k,k,公里公里 ?車費(fèi)為:車費(fèi)為:,cf,cf,元元 returnreturn2021-10-2153分支結(jié)構(gòu)嵌套分支結(jié)構(gòu)嵌套 在分支結(jié)構(gòu)的在分支結(jié)構(gòu)的 中,可以中,可以包含任何包含任何visual foxprovi

46、sual foxpro命令語句,也可命令語句,也可以包括另外一個(gè)或幾個(gè)合法的分支結(jié)構(gòu)以包括另外一個(gè)或幾個(gè)合法的分支結(jié)構(gòu)語句,也就是說分支結(jié)構(gòu)可以嵌套。對語句,也就是說分支結(jié)構(gòu)可以嵌套。對于嵌套的分支結(jié)構(gòu)語句,一定注意內(nèi)外于嵌套的分支結(jié)構(gòu)語句,一定注意內(nèi)外層分支結(jié)構(gòu)層次分明,即注意各個(gè)層次層分支結(jié)構(gòu)層次分明,即注意各個(gè)層次的的ififelseelseendifendif語句的配對情況語句的配對情況。2021-10-2154分支結(jié)構(gòu)嵌套舉例分支結(jié)構(gòu)嵌套舉例 例例 6-11 6-11 永立公司對銷售人員的報(bào)酬計(jì)算永立公司對銷售人員的報(bào)酬計(jì)算方法如下:每月銷售方法如下:每月銷售1010萬元(含萬元(含

47、1010萬元)以下者,萬元)以下者,只得基本工資只得基本工資10001000元;每月銷售元;每月銷售1010萬元以上至萬元以上至3030萬元(含萬元(含3030萬元)者,則超過萬元)者,則超過1010萬元以上部分萬元以上部分按按2%2%提成;每月銷售提成;每月銷售3030萬至萬至5050萬(含萬(含5050萬元)萬元)者,超過者,超過3030萬元部分按萬元部分按5%5%提成;超過提成;超過5050萬元部分萬元部分按按10%10%提成。以上各個(gè)級別的計(jì)算實(shí)行累加計(jì)算。提成。以上各個(gè)級別的計(jì)算實(shí)行累加計(jì)算。編程按輸入每個(gè)銷售人員編號和銷售額,計(jì)算每編程按輸入每個(gè)銷售人員編號和銷售額,計(jì)算每個(gè)銷售人

48、員的報(bào)酬(報(bào)酬結(jié)果按四舍五入規(guī)則取個(gè)銷售人員的報(bào)酬(報(bào)酬結(jié)果按四舍五入規(guī)則取整)。整)。2021-10-2155分支結(jié)構(gòu)嵌套舉例分支結(jié)構(gòu)嵌套舉例 編程思路:為了編程方便,先將每個(gè)級別編程思路:為了編程方便,先將每個(gè)級別的基準(zhǔn)報(bào)酬計(jì)算出來,再根據(jù)銷售額的多少用的基準(zhǔn)報(bào)酬計(jì)算出來,再根據(jù)銷售額的多少用嵌套分支結(jié)構(gòu)判斷計(jì)算。該程序代碼如下:嵌套分支結(jié)構(gòu)判斷計(jì)算。該程序代碼如下:clearclearaccept accept 銷售員編號:銷售員編號: to salenumber to salenumberinput input 銷售額:銷售額: to salevolume to salevolumep

49、ay1=1000pay1=1000pay2=pay1+round(300000-100000)pay2=pay1+round(300000-100000)* *0.02,0)0.02,0)pay3=pay2+round(500000-300000)pay3=pay2+round(500000-300000)* *0.05,0)0.05,0)2021-10-2156分支結(jié)構(gòu)嵌套舉例分支結(jié)構(gòu)嵌套舉例if salevolume=100000if salevolume=100000 pays=pay1 pays=pay1elseelse if salevolume=300000 if salevolu

50、me=300000 pays=pay1+round(salevolume-100000) pays=pay1+round(salevolume-100000)* *0.02,0)0.02,0) else else if salevolume=500000 if salevolume=500000 pays=pay2+round(salevolume-300000) pays=pay2+round(salevolume-300000)* *0.05,0)0.05,0) else elsepays=pay3+round(salevolume-500000)pays=pay3+round(salev

51、olume-500000)* *0.1,0)0.1,0) endif endif endif endifendifendif?salenumber+?salenumber+號銷售員工作報(bào)酬:號銷售員工作報(bào)酬:+str(pays,6,0)+str(pays,6,0)+元。元。 return return 2021-10-2157多分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu) 格式:格式:do casedo case case case 1 1 case case 2 2 . . . . case case n n otherwise otherwise n+1endcaseendcase功能:根據(jù)功能:根據(jù) 是否

52、成立來決定是否執(zhí)行其下的命令序列。是否成立來決定是否執(zhí)行其下的命令序列。 2021-10-2158多分支選擇結(jié)構(gòu)說明多分支選擇結(jié)構(gòu)說明(1 1)多分支選擇結(jié)構(gòu)執(zhí)行的過程是:系統(tǒng)依次判斷各)多分支選擇結(jié)構(gòu)執(zhí)行的過程是:系統(tǒng)依次判斷各 是否滿足,若某一是否滿足,若某一 為為.t.t.,就執(zhí)行該,就執(zhí)行該 下的下的 ,執(zhí)行后不再判斷其它,執(zhí)行后不再判斷其它 ,而轉(zhuǎn)去執(zhí)行而轉(zhuǎn)去執(zhí)行endcaseendcase后面的第一條命令。如果沒有一個(gè)后面的第一條命令。如果沒有一個(gè) 為為.t.t.,就執(zhí)行,就執(zhí)行otherwiseotherwise后面的后面的 命令序列命令序列n+1n+1,直到直到endcasee

53、ndcase;如果沒有;如果沒有otherwiseotherwise,則不作任何操作,則不作任何操作就轉(zhuǎn)向就轉(zhuǎn)向endcaseendcase之后的第一條命令。之后的第一條命令。(2 2)do casedo case語句和語句和endcaseendcase語句必須成對出現(xiàn),各占語句必須成對出現(xiàn),各占一行。一行。2021-10-2159多分支選擇結(jié)構(gòu)說明多分支選擇結(jié)構(gòu)說明(3 3)多分支選擇結(jié)構(gòu)中各)多分支選擇結(jié)構(gòu)中各casecase語句后的語句后的 是按是按其先后順序判斷執(zhí)行的,因此對實(shí)際問題進(jìn)行編程其先后順序判斷執(zhí)行的,因此對實(shí)際問題進(jìn)行編程時(shí),應(yīng)認(rèn)真考慮各個(gè)條件排列的先后順序。時(shí),應(yīng)認(rèn)真考慮

54、各個(gè)條件排列的先后順序。 2021-10-2160多分支選擇結(jié)構(gòu)舉例多分支選擇結(jié)構(gòu)舉例 例例 6-12 6-12 用多分支選擇結(jié)構(gòu)編程計(jì)算用多分支選擇結(jié)構(gòu)編程計(jì)算 例例 6-116-11。程序代碼如下:。程序代碼如下: clearclearaccept accept 銷售員編號:銷售員編號: to salenumber to salenumberinput input 銷售額:銷售額: to salevolume to salevolumepay1=1000pay1=1000pay2=pay1+round(300000-100000)pay2=pay1+round(300000-100000)

55、* *0.02,0)0.02,0)pay3=pay2+round(500000-300000)pay3=pay2+round(500000-300000)* *0.05,0)0.05,0)2021-10-2161多分支選擇結(jié)構(gòu)舉例多分支選擇結(jié)構(gòu)舉例do casedo case case salevolume=100000 case salevolume=100000pays=pay1pays=pay1 case salevolume=300000 case salevolume=300000pays=pay1+round(salevolume-100000)pays=pay1+round(sa

56、levolume-100000)* *0.02,0)0.02,0) case salevolume=500000 case salevolume=500000pays=pay2+round(salevolume-300000)pays=pay2+round(salevolume-300000)* *0.05,0)0.05,0) otherwise otherwisepays=pay3+round(salevolume-500000)pays=pay3+round(salevolume-500000)* *0.1,0)0.1,0)endcaseendcase?salenumber+?salenu

57、mber+號銷售員工作報(bào)酬:號銷售員工作報(bào)酬:+str(pays,6,0)+str(pays,6,0)+元。元。 return return 2021-10-21626.2.3 6.2.3 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 在程序設(shè)計(jì)中,有時(shí)需要從某處開始在程序設(shè)計(jì)中,有時(shí)需要從某處開始有規(guī)律地反復(fù)執(zhí)行某些類似的操作,這有規(guī)律地反復(fù)執(zhí)行某些類似的操作,這些類似的操作一般用循環(huán)結(jié)構(gòu)程序設(shè)計(jì)些類似的操作一般用循環(huán)結(jié)構(gòu)程序設(shè)計(jì)來解決。在來解決。在visual foxprovisual foxpro中,提供了中,提供了3 3種循環(huán)結(jié)構(gòu),即:種循環(huán)結(jié)構(gòu),即:l 當(dāng)型循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu)l 步長型循環(huán)結(jié)構(gòu)步長型循環(huán)結(jié)構(gòu)l

58、 表掃描型循環(huán)結(jié)構(gòu)表掃描型循環(huán)結(jié)構(gòu)2021-10-2163當(dāng)型循環(huán)結(jié)構(gòu)當(dāng)型循環(huán)結(jié)構(gòu) 格式:格式: do while do while 命令序列命令序列 enddo enddo功能:根據(jù)功能:根據(jù) 是否滿足來決定是否執(zhí)行是否滿足來決定是否執(zhí)行 命令序列命令序列 。2021-10-2164當(dāng)型循環(huán)結(jié)構(gòu)說明當(dāng)型循環(huán)結(jié)構(gòu)說明 (1 1)當(dāng)型循環(huán)執(zhí)行的過程是:根據(jù))當(dāng)型循環(huán)執(zhí)行的過程是:根據(jù) 的邏輯值,進(jìn)的邏輯值,進(jìn)行判斷。如果行判斷。如果 的邏輯值為的邏輯值為.t.t.,則執(zhí)行,則執(zhí)行do whiledo while和和enddoenddo之間的之間的 命令序列命令序列 (也稱為循環(huán)體),當(dāng)(也稱為循

59、環(huán)體),當(dāng) 命令序列命令序列 包含的所有命令執(zhí)行完畢后,程序自動返回到包含的所有命令執(zhí)行完畢后,程序自動返回到do whiledo while語語句,每執(zhí)行一遍就判斷一次句,每執(zhí)行一遍就判斷一次do whiledo while語句中的語句中的 。如。如果果 仍然為仍然為.t.t.,則繼續(xù)執(zhí)行,則繼續(xù)執(zhí)行do whiledo while和和enddoenddo之間的之間的 命令序列命令序列 ,直到,直到 的邏輯值為的邏輯值為.f.f.,結(jié)束循環(huán),轉(zhuǎn),結(jié)束循環(huán),轉(zhuǎn)去執(zhí)行去執(zhí)行enddoenddo之后的第一條命令。之后的第一條命令。(2 2)do whiledo while和和enddoenddo語

60、句應(yīng)配對使用,各占一行。語句應(yīng)配對使用,各占一行。2021-10-2165當(dāng)型循環(huán)結(jié)構(gòu)說明當(dāng)型循環(huán)結(jié)構(gòu)說明 (3 3)在)在 命令序列命令序列 的適當(dāng)位置可以放置的適當(dāng)位置可以放置exitexit和和looploop語句,用以對循環(huán)過程作特殊處理。語句,用以對循環(huán)過程作特殊處理。exitexit的功能是:的功能是:結(jié)束循環(huán)命令,轉(zhuǎn)去執(zhí)行結(jié)束循環(huán)命令,轉(zhuǎn)去執(zhí)行enddoenddo之后的第一條命令。之后的第一條命令。looploop語句的功能是:終止本次循環(huán)命令,返回到循環(huán)語句的功能是:終止本次循環(huán)命令,返回到循環(huán)入口。入口。exitexit和和looploop語句只能在循環(huán)結(jié)構(gòu)中使用,并且語句只

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論