版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)基礎(chǔ)
6.1程序文件的建立與運(yùn)行
6.1.1程序文件的建立1.用菜單方式建立程序文件執(zhí)行“文件/新建/程序/新建文件”菜單命令。2.用命令方式建立程序文件格式:MODIFYCOMMAND<程序文件名>功能:新建或修改指定的程序文件。6.1.2程序文件的運(yùn)行1.用菜單方式運(yùn)行程序文件執(zhí)行“程序/運(yùn)行”菜單命令。2.用命令方式運(yùn)行程序文件格式:DO<程序文件名>功能:將指定的程序文件調(diào)入內(nèi)存并運(yùn)行。
6.1.3程序中的輔助命令1.程序注釋命令格式1:NOTE<注釋內(nèi)容>格式2:*<注釋內(nèi)容>格式3:[<命令>]&&<注釋內(nèi)容>2.結(jié)束程序運(yùn)行命令格式1:RETURN功能:返回到上級(jí)程序模塊。格式2:RETURNMASTER功能:返回到最上級(jí)主程序。格式3:CANCEL功能:停止程序執(zhí)行,關(guān)閉所有文件,返回系統(tǒng)交互狀態(tài)。格式4:QUIT功能:停止所有程序執(zhí)行,關(guān)閉所有文件,退回到宿主操作系統(tǒng)。3.運(yùn)行環(huán)境設(shè)置命令CLEAR 清屏幕CLEARALL 關(guān)閉所有文件、釋放所有內(nèi)存變量SETDEFAULTTO 設(shè)置文件訪問時(shí)默認(rèn)的驅(qū)動(dòng)器SETPATHTO 設(shè)置文件訪問時(shí)默認(rèn)的路徑SETTALKON/off 設(shè)置所有命令執(zhí)行的結(jié)果顯示與否SETSTATUSON/off 設(shè)置屏幕下端的狀態(tài)行顯示與否SETSAFETYON/off 設(shè)置進(jìn)行文件重寫或覆蓋操作時(shí)是否有安全提示SETPRINTon/OFF 設(shè)置輸出結(jié)果是否送打印機(jī)打印
6.1.4程序中的交互輸入命令1.字符串輸入命令格式:ACCEPT[<提示信息>]TO<內(nèi)存變量>功能:暫停程序的運(yùn)行,等待用戶鍵入一串字符賦給指定的內(nèi)存變量。2.表達(dá)式輸入命令格式:INPUT[<提示信息>]TO<內(nèi)存變量>功能:暫停程序運(yùn)行,接受用戶鍵入的表達(dá)式并將其值賦給指定的內(nèi)存變量。3.等待或單字符輸入命令格式:WAIT[<提示信息>][TO<內(nèi)存變量>]功能:暫停程序運(yùn)行,若包含[TO<內(nèi)存變量>]短語時(shí),將用戶所鍵入的一個(gè)字符賦給指定的內(nèi)存變量;否則待用戶按任一鍵后繼續(xù)程序的執(zhí)行。4.定位輸出命令格式:@<行,列>SAY<表達(dá)式>功能:在屏幕上指定的行、列位置輸出指定表達(dá)式的值。6.2順序結(jié)構(gòu)程序設(shè)計(jì)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è)計(jì)順序結(jié)構(gòu)的程序是嚴(yán)格按照程序中各命令的先后排列順序自上而下逐條執(zhí)行的。例如:根據(jù)輸入的人口基數(shù)與年平均增長(zhǎng)率,計(jì)算二十年后的人口數(shù)。CLEARINPUT"人口基數(shù):"TOaaINPUT"年平均增長(zhǎng)率:"TObbcc=aa*(1+bb)**20?"二十年后人口數(shù)為:"+STR(cc,12)RETURN6.3分支結(jié)構(gòu)程序設(shè)計(jì)
6.3.1簡(jiǎn)單分支結(jié)構(gòu)格式:IF<條件> <語句序列>ENDIF執(zhí)行過程:當(dāng)IF語句中的<條件>成立時(shí),系統(tǒng)將逐條執(zhí)行IF與ENDIF之間的<語句序列>,然后再轉(zhuǎn)去執(zhí)行ENDIF后的程序語句;當(dāng)<條件>不成立時(shí),則不執(zhí)行<語句序列>而直接執(zhí)行ENDIF后的程序語句。例如:某種商品一次購(gòu)買100件以上時(shí),可享受8%的優(yōu)惠。試編程根據(jù)輸入的單價(jià)和數(shù)量計(jì)算應(yīng)付金額。CLEARINPUT"數(shù)量:"TOslINPUT"單價(jià):"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公里時(shí)一律收費(fèi)10元,超過時(shí)則超過部分每公里加收1.5元。試編程根據(jù)里程數(shù)計(jì)算并顯示出應(yīng)付車費(fèi)。CLEARINPUT"里程:"TOlcIFlc<=5 ?"車費(fèi)為:十元"ELSE cf=10+(lc-5)*1.5 ?"車費(fèi)為:"+STR(cf,6,2)ENDIFRETURN6.3.3分支嵌套結(jié)構(gòu)
例如:按輸入的工號(hào)和該號(hào)員工的工時(shí)數(shù),計(jì)算并輸出其應(yīng)發(fā)工資。CLEARACCEPT"工號(hào):"TOghINPUT"工時(shí):"TOgsIFgs>120gz=gs*84+(gs-120)*84*0.15ELSE IFgs<60 gz=gs*84-700 ELSE gz=gs*84 ENDIFENDIF? &&輸出一個(gè)空行?gh+"號(hào)職工應(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例如:編程計(jì)算銀行存款整存整取應(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è)計(jì)6.4.1當(dāng)型循環(huán)結(jié)構(gòu)格式:DOWHILE<條件> <語句序列>ENDDO執(zhí)行過程:判斷DOWHILE語句后的<條件>成立與否,不成立就不執(zhí)行其中的<語句序列>,直接轉(zhuǎn)去執(zhí)行ENDDO后的語句;若<條件>成立,則執(zhí)行DOWHILE和ENDDO之間的<語句序列>。每執(zhí)行一遍后就再對(duì)<條件>判斷一次,一旦<條件>不成立就結(jié)束循環(huán)轉(zhuǎn)去執(zhí)行ENDDO后面的語句。例如:求1+2+3+...+100的累計(jì)值。CLEARSTORE0TOn,sDOWHILEn<100n=n+1
s=s+nENDDO?"累計(jì)值為:"+STR(s,6)RETURN
6.4.2步長(zhǎng)型循環(huán)結(jié)構(gòu)格式:FOR<循環(huán)變量>=<初值>TO<終值>[STEP<步長(zhǎng)值>] <語句序列>ENDFOR|NEXT執(zhí)行過程:首先將初值賦給指定的循環(huán)變量,然后判斷其值是否超過終值,不超過即執(zhí)行循環(huán)體,超過則不執(zhí)行循環(huán)體。遇到ENDFOR(或NEXT)語句時(shí)系統(tǒng)將自動(dòng)給循環(huán)變量增加一個(gè)步長(zhǎng)值,再判斷循環(huán)變量的當(dāng)前值是否超過終值,不超過再次執(zhí)行循環(huán)體,超過則結(jié)束循環(huán)轉(zhuǎn)去執(zhí)行ENDFOR(或NEXT)后的語句。例如:用步長(zhǎng)型循環(huán)結(jié)構(gòu)編程求1+2+3+...+100的累計(jì)值。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í)行過程:對(duì)當(dāng)前數(shù)據(jù)表中指定范圍內(nèi)符合條件的記錄,逐個(gè)進(jìn)行<語句序列>所規(guī)定的操作;缺省范圍和條件短語時(shí),則對(duì)所有記錄逐個(gè)進(jìn)行<語句序列>所規(guī)定的操作。例如:用掃描型循環(huán)結(jié)構(gòu)編程,輸出職工檔案數(shù)據(jù)表中基本工資在三百元以下的職工姓名及其基本工資數(shù),并統(tǒng)計(jì)輸出這些職工的人數(shù)。CLEARALLUSEzgdaCLEARSTORE0TOnSCANFOR基本工資<300?姓名,基本工資
n=n+1ENDSCAN?"基本工資在三百元以下的共有:"+STR(n,3)+"人"CLOSEDATABASESRETURN6.4.4循環(huán)嵌套結(jié)構(gòu)在一個(gè)循環(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)、步長(zhǎng)型循環(huán)結(jié)構(gòu)和掃描型循環(huán)結(jié)構(gòu)不僅自身可以實(shí)行循環(huán)的嵌套,而且相互之間也可以實(shí)行嵌套。例如:設(shè)a、b為兩個(gè)介于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è)計(jì)6.5.1程序模塊的建立與運(yùn)行例如:對(duì)于任意輸入的x、y、z的整數(shù)值,計(jì)算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è)計(jì)目前,各種事務(wù)管理應(yīng)用程序的開發(fā)大都采用“自頂向下”的模塊化程序設(shè)計(jì)方法,大大方便了整個(gè)程序的開發(fā)與調(diào)試,并且極大地增加了程序的靈活性和可維護(hù)性。
下圖是一個(gè)簡(jiǎn)化的職工檔案管理系統(tǒng)的程序模塊結(jié)構(gòu),每個(gè)程序模塊都對(duì)應(yīng)一個(gè)磁盤上的.PRG文件。事實(shí)上,大多數(shù)管理程序系統(tǒng)都具有與之相類似的層次型程序模塊結(jié)構(gòu)。6.5.3帶參模塊的建立與調(diào)用1.帶參模塊調(diào)用命令格式:DO<程序模塊名>WITH<參數(shù)表>功能:調(diào)用指定名稱的程序模塊,并將<參數(shù)表>中各個(gè)參數(shù)的值分別傳遞給所調(diào)用模塊中的對(duì)應(yīng)參數(shù)。2.接受參數(shù)命令格式:PARAMETERS<參數(shù)表>功能:接受帶參模塊調(diào)用命令傳遞過來的各個(gè)參數(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)配符>]功能:指定某些變量為只限于本模塊及其下屬模塊中使用的局部變量,并使其上級(jí)模塊中的同名變量隱蔽起來直至本級(jí)模塊運(yùn)行結(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- AISTEAM教學(xué)中項(xiàng)目式學(xué)習(xí)評(píng)價(jià)與學(xué)習(xí)成果展示課題報(bào)告教學(xué)研究課題報(bào)告
- 校企合作構(gòu)建人工智能教育質(zhì)量監(jiān)控體系研究教學(xué)研究課題報(bào)告
- 2025年高端無人機(jī)研發(fā)生產(chǎn)基地建設(shè)規(guī)劃可行性報(bào)告
- 全國(guó)一等獎(jiǎng)統(tǒng)編版語文二年級(jí)下冊(cè)《古詩二首-詠柳》公開課精美課件
- 2026年生物科技醫(yī)療健康產(chǎn)業(yè)分析報(bào)告
- 2025-2026學(xué)年廣東深圳紅嶺中學(xué)七年級(jí)上學(xué)期期中考英語試題
- 保險(xiǎn)代理人進(jìn)級(jí)制度
- 交警節(jié)假日值班制度
- 兩都巡幸制度
- 2026年泰和縣教育體育局所屬事業(yè)單位競(jìng)爭(zhēng)性選調(diào)工作人員的備考題庫及完整答案詳解1套
- 高校行政管理流程及案例分析
- 《人間充質(zhì)基質(zhì)細(xì)胞來源細(xì)胞外囊泡凍干粉質(zhì)量要求》(征求意見稿)
- 中潤(rùn)盛和(孝義)新能源科技 孝義市杜村鄉(xiāng)分散式微風(fēng)發(fā)電項(xiàng)目可行性研究報(bào)告
- 入團(tuán)申請(qǐng)書教學(xué)課件
- 2026年中國(guó)農(nóng)業(yè)銀行秋季校園招聘即將開始考試筆試試題(含答案)
- 2025年江蘇省招聘警務(wù)輔助人員考試真題及答案
- 山東濟(jì)南2019-2024年中考滿分作文87篇
- (2025年標(biāo)準(zhǔn))sm調(diào)教協(xié)議書
- 醫(yī)院急救應(yīng)急體系構(gòu)建與實(shí)施
- TCES 109-2022 舌診儀 第一部分:一般要求
- (2025標(biāo)準(zhǔn))廠房托管協(xié)議書
評(píng)論
0/150
提交評(píng)論