




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
程序設(shè)計基礎(chǔ)
6.1程序文件的建立與運行
6.1.1程序文件的建立1.用菜單方式建立程序文件執(zhí)行“文件/新建/程序/新建文件”菜單命令。2.用命令方式建立程序文件格式:MODIFYCOMMAND<程序文件名>功能:新建或修改指定的程序文件。6.1.2程序文件的運行1.用菜單方式運行程序文件執(zhí)行“程序/運行”菜單命令。2.用命令方式運行程序文件格式:DO<程序文件名>功能:將指定的程序文件調(diào)入內(nèi)存并運行。
6.1.3程序中的輔助命令1.程序注釋命令格式1:NOTE<注釋內(nèi)容>格式2:*<注釋內(nèi)容>格式3:[<命令>]&&<注釋內(nèi)容>2.結(jié)束程序運行命令格式1:RETURN功能:返回到上級程序模塊。格式2:RETURNMASTER功能:返回到最上級主程序。格式3:CANCEL功能:停止程序執(zhí)行,關(guān)閉所有文件,返回系統(tǒng)交互狀態(tài)。格式4:QUIT功能:停止所有程序執(zhí)行,關(guān)閉所有文件,退回到宿主操作系統(tǒng)。3.運行環(huán)境設(shè)置命令CLEAR 清屏幕CLEARALL 關(guān)閉所有文件、釋放所有內(nèi)存變量SETDEFAULTTO 設(shè)置文件訪問時默認(rèn)的驅(qū)動器SETPATHTO 設(shè)置文件訪問時默認(rèn)的路徑SETTALKON/off 設(shè)置所有命令執(zhí)行的結(jié)果顯示與否SETSTATUSON/off 設(shè)置屏幕下端的狀態(tài)行顯示與否SETSAFETYON/off 設(shè)置進(jìn)行文件重寫或覆蓋操作時是否有安全提示SETPRINTon/OFF 設(shè)置輸出結(jié)果是否送打印機(jī)打印
6.1.4程序中的交互輸入命令1.字符串輸入命令格式:ACCEPT[<提示信息>]TO<內(nèi)存變量>功能:暫停程序的運行,等待用戶鍵入一串字符賦給指定的內(nèi)存變量。2.表達(dá)式輸入命令格式:INPUT[<提示信息>]TO<內(nèi)存變量>功能:暫停程序運行,接受用戶鍵入的表達(dá)式并將其值賦給指定的內(nèi)存變量。3.等待或單字符輸入命令格式:WAIT[<提示信息>][TO<內(nèi)存變量>]功能:暫停程序運行,若包含[TO<內(nèi)存變量>]短語時,將用戶所鍵入的一個字符賦給指定的內(nèi)存變量;否則待用戶按任一鍵后繼續(xù)程序的執(zhí)行。4.定位輸出命令格式:@<行,列>SAY<表達(dá)式>功能:在屏幕上指定的行、列位置輸出指定表達(dá)式的值。6.2順序結(jié)構(gòu)程序設(shè)計6.2.1基本程序結(jié)構(gòu)1.順序程序結(jié)構(gòu)2.分支程序結(jié)構(gòu)3.循環(huán)程序結(jié)構(gòu)
6.2.2順序結(jié)構(gòu)程序設(shè)計順序結(jié)構(gòu)的程序是嚴(yán)格按照程序中各命令的先后排列順序自上而下逐條執(zhí)行的。例如:根據(jù)輸入的人口基數(shù)與年平均增長率,計算二十年后的人口數(shù)。CLEARINPUT"人口基數(shù):"TOaaINPUT"年平均增長率:"TObbcc=aa*(1+bb)**20?"二十年后人口數(shù)為:"+STR(cc,12)RETURN6.3分支結(jié)構(gòu)程序設(shè)計
6.3.1簡單分支結(jié)構(gòu)格式:IF<條件> <語句序列>ENDIF執(zhí)行過程:當(dāng)IF語句中的<條件>成立時,系統(tǒng)將逐條執(zhí)行IF與ENDIF之間的<語句序列>,然后再轉(zhuǎn)去執(zhí)行ENDIF后的程序語句;當(dāng)<條件>不成立時,則不執(zhí)行<語句序列>而直接執(zhí)行ENDIF后的程序語句。例如:某種商品一次購買100件以上時,可享受8%的優(yōu)惠。試編程根據(jù)輸入的單價和數(shù)量計算應(yīng)付金額。CLEARINPUT"數(shù)量:"TOslINPUT"單價:"TOdjje=dj*slIFsl>=100 je=je*0.92ENDIF?"應(yīng)付金額:"+STR(je,8,2)RETURN6.3.2選擇分支結(jié)構(gòu)
格式:IF<條件> <語句序列1>ELSE <語句序列2>ENDIF執(zhí)行過程:若<條件>成立,僅執(zhí)行<語句序列1>,執(zhí)行完后即轉(zhuǎn)去執(zhí)行ENDIF后的語句;否則僅執(zhí)行<語句序列2>,執(zhí)行完后也轉(zhuǎn)去執(zhí)行ENDIF后的語句。例如:設(shè)出租車不超過5公里時一律收費10元,超過時則超過部分每公里加收1.5元。試編程根據(jù)里程數(shù)計算并顯示出應(yīng)付車費。CLEARINPUT"里程:"TOlcIFlc<=5 ?"車費為:十元"ELSE cf=10+(lc-5)*1.5 ?"車費為:"+STR(cf,6,2)ENDIFRETURN6.3.3分支嵌套結(jié)構(gòu)
例如:按輸入的工號和該號員工的工時數(shù),計算并輸出其應(yīng)發(fā)工資。CLEARACCEPT"工號:"TOghINPUT"工時:"TOgsIFgs>120gz=gs*84+(gs-120)*84*0.15ELSE IFgs<60 gz=gs*84-700 ELSE gz=gs*84 ENDIFENDIF? &&輸出一個空行?gh+"號職工應(yīng)發(fā)工資:"+STR(gz,8,2)RETURN6.3.4多路分支結(jié)構(gòu)格式:DOCASE CASE<條件1> <語句序列1> CASE<條件2> <語句序列2> …… CASE<條件n> <語句序列n> [OTHERWISE <語句序列n+1>]ENDCASE例如:編程計算銀行存款整存整取應(yīng)得的利息。CLEARINPUT"本金(元):"TObjINPUT"存期(年):"TOcqDOCASE CASEcq>=5 rate=7.5&&年利率為7.5‰ CASEcq>=3 rate=6.9&&年利率為6.9‰ CASEcq>=2 rate=6.6&&年利率為6.6‰
CASEcq>=1 rate=6.3&&年利率為6.3‰ CASEcq>=0.5 rate=4.5&&年利率為4.5‰ OTHERWISE rate=1.7&&年利率為1.7‰ENDCASElixi=bj*cq*rate/1000??"應(yīng)得利息:"+STR(lixi,8,2)RETURN6.4循環(huán)結(jié)構(gòu)程序設(shè)計6.4.1當(dāng)型循環(huán)結(jié)構(gòu)格式:DOWHILE<條件> <語句序列>ENDDO執(zhí)行過程:判斷DOWHILE語句后的<條件>成立與否,不成立就不執(zhí)行其中的<語句序列>,直接轉(zhuǎn)去執(zhí)行ENDDO后的語句;若<條件>成立,則執(zhí)行DOWHILE和ENDDO之間的<語句序列>。每執(zhí)行一遍后就再對<條件>判斷一次,一旦<條件>不成立就結(jié)束循環(huán)轉(zhuǎn)去執(zhí)行ENDDO后面的語句。例如:求1+2+3+...+100的累計值。CLEARSTORE0TOn,sDOWHILEn<100n=n+1
s=s+nENDDO?"累計值為:"+STR(s,6)RETURN
6.4.2步長型循環(huán)結(jié)構(gòu)格式:FOR<循環(huán)變量>=<初值>TO<終值>[STEP<步長值>] <語句序列>ENDFOR|NEXT執(zhí)行過程:首先將初值賦給指定的循環(huán)變量,然后判斷其值是否超過終值,不超過即執(zhí)行循環(huán)體,超過則不執(zhí)行循環(huán)體。遇到ENDFOR(或NEXT)語句時系統(tǒng)將自動給循環(huán)變量增加一個步長值,再判斷循環(huán)變量的當(dāng)前值是否超過終值,不超過再次執(zhí)行循環(huán)體,超過則結(jié)束循環(huán)轉(zhuǎn)去執(zhí)行ENDFOR(或NEXT)后的語句。例如:用步長型循環(huán)結(jié)構(gòu)編程求1+2+3+...+100的累計值。CLEARs=0FORn=1TO100
s=s+nENDFOR?"S="+STR(S,6)RETURN
6.4.3掃描型循環(huán)結(jié)構(gòu)格式:SCAN[<范圍>][FOR<條件1>][WHILE<條件2>] <語句序列>ENDSCAN執(zhí)行過程:對當(dāng)前數(shù)據(jù)表中指定范圍內(nèi)符合條件的記錄,逐個進(jìn)行<語句序列>所規(guī)定的操作;缺省范圍和條件短語時,則對所有記錄逐個進(jìn)行<語句序列>所規(guī)定的操作。例如:用掃描型循環(huán)結(jié)構(gòu)編程,輸出職工檔案數(shù)據(jù)表中基本工資在三百元以下的職工姓名及其基本工資數(shù),并統(tǒng)計輸出這些職工的人數(shù)。CLEARALLUSEzgdaCLEARSTORE0TOnSCANFOR基本工資<300?姓名,基本工資
n=n+1ENDSCAN?"基本工資在三百元以下的共有:"+STR(n,3)+"人"CLOSEDATABASESRETURN6.4.4循環(huán)嵌套結(jié)構(gòu)在一個循環(huán)結(jié)構(gòu)的循環(huán)體內(nèi)又包含有其它循環(huán)結(jié)構(gòu),便形成了循環(huán)的嵌套,亦即多重循環(huán)結(jié)構(gòu)。前面所介紹的當(dāng)型循環(huán)結(jié)構(gòu)、步長型循環(huán)結(jié)構(gòu)和掃描型循環(huán)結(jié)構(gòu)不僅自身可以實行循環(huán)的嵌套,而且相互之間也可以實行嵌套。例如:設(shè)a、b為兩個介于1和9之間的數(shù)字,若有式子aab+bb=baa成立,則a、b兩數(shù)各應(yīng)等于多少?CLEARFORa=1TO9FORb=1TO9r1=a*100+a*10+b+(b*10+b)r2=b*100+a*10+aIFr1=r2?"a=",a?"b=",bENDIFENDFORENDFORRETURN6.5模塊結(jié)構(gòu)程序設(shè)計6.5.1程序模塊的建立與運行例如:對于任意輸入的x、y、z的整數(shù)值,計算w=x!+y!+z!的值。**主模塊main_1.prgCLEARALLINPUT"x="TOxINPUT"y="TOyINPUT"z="TOzn=xDOsubp_1a=tn=yDOsubp_1b=tn=zDOsubp_1w=a+b+t?"w=x!+y!+z!=",wRETURN**子模塊subp_1.prgPUBLICt &&宣告t為全局變量t=1FORi=1TOnt=t*iNEXTRETURN
6.5.2應(yīng)用程序的模塊化設(shè)計目前,各種事務(wù)管理應(yīng)用程序的開發(fā)大都采用“自頂向下”的模塊化程序設(shè)計方法,大大方便了整個程序的開發(fā)與調(diào)試,并且極大地增加了程序的靈活性和可維護(hù)性。
下圖是一個簡化的職工檔案管理系統(tǒng)的程序模塊結(jié)構(gòu),每個程序模塊都對應(yīng)一個磁盤上的.PRG文件。事實上,大多數(shù)管理程序系統(tǒng)都具有與之相類似的層次型程序模塊結(jié)構(gòu)。6.5.3帶參模塊的建立與調(diào)用1.帶參模塊調(diào)用命令格式:DO<程序模塊名>WITH<參數(shù)表>功能:調(diào)用指定名稱的程序模塊,并將<參數(shù)表>中各個參數(shù)的值分別傳遞給所調(diào)用模塊中的對應(yīng)參數(shù)。2.接受參數(shù)命令格式:PARAMETERS<參數(shù)表>功能:接受帶參模塊調(diào)用命令傳遞過來的各個參數(shù)。3.帶參模塊舉例6.5.4內(nèi)存變量作用域1.全局變量全局變量又稱公共變量,是指在任何命令語句以及任何嵌套層次的程序模塊中均起作用的內(nèi)存變量。定義全局變量的命令格式如下:格式:PUBLIC<內(nèi)存變量表>功能:將<內(nèi)存變量表>中指定的內(nèi)存變量定義為全局變量。2.局部變量格式1:PRIVATE<內(nèi)存變量表>格式2:PRIVATEALL[LIKE/EXCEPT<統(tǒng)配符>]功能:指定某些變量為只限于本模塊及其下屬模塊中使用的局部變量,并使其上級模塊中的同名變量隱蔽起來直至本級模塊運行結(jié)束為止。
6.5.5過程與過程文件1.過程的概念[PARAMETERS<參數(shù)表>] <語句序列>ENDPROC2.過程文件PROCEDURE<過程名1> <語句序列1>ENDPROCPROCEDURE<過程名2> <語句序列2>ENDPROC…………PROCEDURE<過程名n> <語句序列n>ENDPROC6.5.6用戶自定義函數(shù)1.自定義函數(shù)的概念[FUNCTION<函數(shù)名>]
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度城市托管班品牌授權(quán)與加盟合同
- 文化產(chǎn)品創(chuàng)意開發(fā)合同
- 工業(yè)管道清洗與維護(hù)預(yù)案
- 法律咨詢行業(yè)法律服務(wù)結(jié)果保證書
- 三農(nóng)行業(yè)三農(nóng)戶教育培訓(xùn)計劃
- 農(nóng)業(yè)種植養(yǎng)殖合同
- 智能圖書館管理系統(tǒng)供應(yīng)合同
- 大學(xué)語文辯論賽故事征文
- 高考語文復(fù)習(xí)-文言文專題訓(xùn)練《史記晉世家》
- 會議紀(jì)要與重要決策執(zhí)行情況跟蹤表
- 四川省建筑行業(yè)調(diào)研報告
- 北京市豐臺區(qū)2024-2025學(xué)年高三上學(xué)期期末英語試題
- 2025上海市嘉定工業(yè)區(qū)農(nóng)村青年干部招聘22人歷年高頻重點提升(共500題)附帶答案詳解
- 2025采購部年度工作計劃
- 2024年度個人珠寶首飾分期購買合同范本3篇
- 食為天:2024中國食品飲料行業(yè)白皮書
- 醫(yī)學(xué)倫理與醫(yī)患溝通技巧
- 2025年牛津譯林版英語七年級下冊全冊單元重點知識點與語法匯編
- 痔瘡中醫(yī)治療課件
- 污水處理設(shè)備的故障處理指南考核試卷
- 華東師范大學(xué)《社會研究方法》2023-2024學(xué)年第一學(xué)期期末試卷
評論
0/150
提交評論