版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
主要內(nèi)容:1、子程序、過(guò)程文件的創(chuàng)建。2、子程序、過(guò)程文件的調(diào)用、參數(shù)傳遞。3、自定義函數(shù)的定義。4、自定義函數(shù)的調(diào)用。5、變量的作用域:全局變量、局部變量、本地變量。子程序、過(guò)程和函數(shù)子程序、過(guò)程和函數(shù)問(wèn)題提出:設(shè)計(jì)一個(gè)程序完成下面計(jì)算:其中,m、n為正整數(shù),m>n,該程序如何設(shè)計(jì)更有效?例:編程求
*求組合數(shù)程序zhs1.prginput"請(qǐng)輸入n="toninput"請(qǐng)輸入m="tomsn=1sm=1smn=1fori=1ton
sn=sn*iendforfori=1tom
sm=sm*iendforfori=1tom-n
smn=smn*iendfor?"n!=",sn?"m!=",sm?"(m-n)!=",smn?"Cmn=",sm/(sn*smn)return將需要重復(fù)執(zhí)行的語(yǔ)句序列或獨(dú)立的功能子模塊定義成子程序、過(guò)程或用戶自定義函數(shù),需要執(zhí)行時(shí)只需調(diào)用它即可。子程序、過(guò)程和函數(shù)主程序、子程序、過(guò)程、函數(shù)的概念:主程序:指只調(diào)用其他程序的程序。子程序:具有相對(duì)的獨(dú)立性、能完成某一功能、能被其他程序調(diào)用的程序。過(guò)程:是指程序文件中的一個(gè)子程序模塊。自定義函數(shù):與過(guò)程的區(qū)別在于返回語(yǔ)句帶有返回值。子程序1.子程序的創(chuàng)建格式:
[parameters<形參表>]
<命令序列>
return[tomaster]功能:創(chuàng)建子程序文件。2.子程序的調(diào)用格式:do<子程序文件名>[with<實(shí)參表>]功能:調(diào)用一個(gè)指定的子程序,若調(diào)用的是有參數(shù)的子程序,則要用with子句向被調(diào)用的子程序傳遞參數(shù)。
…………dosub1……
……主程序main.prg
…………dosub2…………return子程序1sub1.prg
……if…return
endif……returntomaster子程序2sub2.prg子程序1.子程序的創(chuàng)建格式:
[parameters<形參表>]
<命令序列>
return[tomaster]功能:創(chuàng)建子程序文件。2.子程序的調(diào)用格式:do<子程序文件名>[with<實(shí)參表>]功能:調(diào)用一個(gè)指定的子程序,若調(diào)用的是有參數(shù)的子程序,則要用with子句向被調(diào)用的子程序傳遞參數(shù)。3.參數(shù)傳遞參數(shù)傳遞有兩種方式:值傳遞和地址傳遞。如果實(shí)參是常量或表達(dá)式或括號(hào)括起來(lái)的變量,默認(rèn)的傳遞方式是值傳遞,此時(shí)子程序中形參的變化不會(huì)影響到調(diào)用程序中的實(shí)參。如果實(shí)參是沒(méi)有用括號(hào)括起來(lái)的變量,默認(rèn)的傳遞方式是按地址傳遞,此時(shí)形參的值發(fā)生改變,實(shí)參也隨之改變。例1:觀察下列程序中的兩種子程序調(diào)用,比較按值傳遞與按地址傳遞的區(qū)別。*主程序文件main1.prgcleara=3.14dosub1witha?a*子程序文件sub1.prgparametersb?bb=2.72return輸出結(jié)果:3.142.72a3.14b2.72例1:觀察下列程序中的兩種子程序調(diào)用,比較按值傳遞與按地址傳遞的區(qū)別。*主程序文件main2.prgcleara=3.14dosub1witha?a*子程序文件sub1.prgparametersb?bb=2.72return()a3.14輸出結(jié)果:3.143.14b3.142.72例2:用子程序調(diào)用求
*主程序zhs2.prginput"請(qǐng)輸入n="toninput"請(qǐng)輸入m="tomsn=1sm=1smn=1dojc
withn,sndojcwithm,smdojc
withm-n,smn?"n!=",sn?"m!=",sm?"(m-n)!=",smn?"Cmn=",sm/(sn*smn)return*子程序文件jc.prgparameterst,ss=1fori=1tots=s*iendforreturn運(yùn)行結(jié)果:請(qǐng)輸入n=請(qǐng)輸入m=n!=6m!=120(m-n)!=2Cmn=10.0000↙3↙5過(guò)程過(guò)程可以分為內(nèi)部過(guò)程和外部過(guò)程。內(nèi)部過(guò)程:過(guò)程定義在主調(diào)程序文件中,一般將過(guò)程定義在程序后面。外部過(guò)程:過(guò)程定義在過(guò)程文件(prg)中。一個(gè)過(guò)程文件可以包含多個(gè)過(guò)程,每個(gè)過(guò)程仍然是獨(dú)立的,可以單獨(dú)調(diào)用。1.過(guò)程的建立
格式:procedure<過(guò)程名>[parameters<形參表>]<過(guò)程語(yǔ)句序列>return[tomaster][endproc]
功能:將一個(gè)語(yǔ)句系列定義為以<過(guò)程名>為名的過(guò)程。在主程序或過(guò)程文件中創(chuàng)建過(guò)程2.過(guò)程的調(diào)用(1)內(nèi)部過(guò)程:被調(diào)用的過(guò)程在主調(diào)程序中(后面)
。格式:do<過(guò)程名>[with<實(shí)參表>](2)外部過(guò)程:被調(diào)用的過(guò)程在過(guò)程文件中。①先打開(kāi)過(guò)程文件,再調(diào)用過(guò)程格式:setprocedureto<過(guò)程文件名>
功能:該命令打開(kāi)一個(gè)過(guò)程文件。格式:closeprocedure或setprocedureto
功能:該命令關(guān)閉當(dāng)前過(guò)程文件。②直接用do命令調(diào)用
do<過(guò)程名>[with<實(shí)參表>][in<過(guò)程文件名>]3.參數(shù)傳遞
過(guò)程的參數(shù)傳遞和子程序的參數(shù)傳遞方式相同。例:用主程序調(diào)用過(guò)程的方式編寫(xiě)程序,求任意邊長(zhǎng)的正方形的面積、周長(zhǎng)。
*主程序和過(guò)程在同一程序文件中clearinput"請(qǐng)輸入正方形的邊長(zhǎng):"tobmj=0zc=0dozmjwithmj,bdozzcwithzc,b?"正方形的面積為:",mj?"正方形的周長(zhǎng)為:",zc*定義求正方形的面積的過(guò)程procedurezmjparameterss,xs=x*xreturn*定義求正方形的周長(zhǎng)的過(guò)程procedurezzcparametersc,xc=4*xreturn例:用主程序調(diào)用過(guò)程的方式編寫(xiě)程序,求任意邊長(zhǎng)的正方形的面積、周長(zhǎng)。
*主程序和過(guò)程不在同一程序文件中*主程序main3.prgclearinput"請(qǐng)輸入正方形的邊長(zhǎng):"tobmj=0zc=0dozmjwithmj,binproc1dozzcwithzc,binproc1?"正方形的面積為:",mj?"正方形的周長(zhǎng)為:",zc*過(guò)程文件proc1.prg*定義求正方形的面積的過(guò)程procedurezmjparameterss,xs=x*xreturn*定義求正方形的周長(zhǎng)的過(guò)程procedurezzcparametersc,xc=4*xreturn自定義函數(shù)
1.自定義函數(shù)的定義格式:function<函數(shù)名>
[parameters<形參表>]
<命令序列>
return[<表達(dá)式>]
[endfunc]功能:用來(lái)定義一個(gè)函數(shù),<函數(shù)名>是自定義函數(shù)的名字。說(shuō)明:return返回函數(shù)的值,如果省略“表達(dá)式”,則返回.t.
2.自定義函數(shù)的調(diào)用格式:<函數(shù)名>(<實(shí)參表>)3、參數(shù)傳遞在自定義函數(shù)中,默認(rèn)的參數(shù)傳遞方式是值傳遞方式例:編程求
clearinput"請(qǐng)輸入n="toninput"請(qǐng)輸入m="tomsn=1sm=1smn=1sn=jc(n)sm=jc(m)smn=jc(m-n)?"n!=",sn?"m!=",sm?"(m-n)!=",smn?"Cmn=",sm/(sn*smn)functionjcparametersns=1fori=1tons=s*iendforreturns變量的作用域
程序各模塊之間的的數(shù)據(jù)傳遞可以通過(guò)兩種方式來(lái)解決:利用參數(shù)實(shí)現(xiàn)數(shù)據(jù)傳遞利用變量的作用域?qū)崿F(xiàn)數(shù)據(jù)傳遞變量作用域:內(nèi)存變量的有效作用范圍。如果一個(gè)變量在某個(gè)程序或過(guò)程或函數(shù)范圍內(nèi)是有效的,則該程序或過(guò)程或函數(shù)為該變量的作用域,在此作用域內(nèi)可以引用該變量。根據(jù)作用域的不同,內(nèi)存變量可分為全局變量、私有變量和局部變量三種類(lèi)型。變量的作用域
1.全局變量(公共變量)全局變量是指聲明后,程序中的任何模塊都能使用的內(nèi)存變量。(1)全局變量的定義1)在命令窗口創(chuàng)建的變量和數(shù)組將自動(dòng)成為全局變量。2)用public語(yǔ)句定義:格式:public<內(nèi)存變量名表/數(shù)組名表>功能:定義全局內(nèi)存變量或數(shù)組。(2)說(shuō)明程序結(jié)束時(shí),全局變量不會(huì)自動(dòng)釋放,需要用clearall或clearmemory或release等命令釋放。變量的作用域2.私有變量只局限在定義它的程序模塊以及下級(jí)模塊(該模塊所調(diào)用的模塊)中有效。當(dāng)定義它的模塊運(yùn)行結(jié)束,它被自動(dòng)釋放。(1)局部變量的定義①在一個(gè)程序或過(guò)程中建立的內(nèi)存變量,如果未加任何說(shuō)明,自動(dòng)成為私有變量。②格式:private<內(nèi)存變量名表/數(shù)組名表>(2)說(shuō)明:定義私有內(nèi)存變量和數(shù)組,可以屏蔽來(lái)自上級(jí)模塊中與當(dāng)前局部變量同名的變量,使在當(dāng)前模塊中對(duì)局部變量的操作,不影響上級(jí)模塊中同名變量的值。即如果本模塊的私有變量和上層模塊中的變量重名,則本模塊的變量?jī)?yōu)先,上層模塊中的變量被屏蔽,直到本模塊運(yùn)行結(jié)束,上層變量恢復(fù)使用。變量的作用域3.局部變量只局限在定義它的程序模塊中有效,一旦定義它的程序模塊運(yùn)行結(jié)束,它便自動(dòng)被清除。(1)局部變量的定義格式:local<內(nèi)存變量名表/數(shù)組名表>功能:定義局部?jī)?nèi)存變量和數(shù)組,并屏蔽所有與它同名的變量,使在當(dāng)前模塊中對(duì)局部變量的操作,不影響其它模塊中同名變量的值。說(shuō)明:和前兩種的不同在于,局部變量只能在本程序模塊中使用,因此它不能負(fù)責(zé)在各個(gè)模塊之間傳遞數(shù)據(jù)。全局變量、局部變量和私有變量的比較
全局變量(public)私有變量(private)局部變量(local)作用域整個(gè)系統(tǒng)的所有程序。當(dāng)前程序模塊變量壽命即使所有程序運(yùn)行結(jié)束,內(nèi)存中也仍然保存該變量。當(dāng)前程序模塊運(yùn)行結(jié)束后,該變量被自動(dòng)清除。數(shù)據(jù)傳遞作用任意一對(duì)調(diào)用程序與被調(diào)過(guò)程間雙向傳遞。從調(diào)用程序到被調(diào)過(guò)程雙向傳遞。無(wú)當(dāng)前程序模塊及其下屬程序模塊。例1:用變量作用域編寫(xiě)程序,求任意邊長(zhǎng)的正方形的面積、周長(zhǎng),面積和周長(zhǎng)用過(guò)程實(shí)現(xiàn)。*主程序和過(guò)程在同一程序文件中clearinput"請(qǐng)輸入正方形的邊長(zhǎng):"tobmj=0zc=0dozmjwithmj,bdozzcwithzc,b?"正方形的面積為:",mj?"正方形的周長(zhǎng)為:",zcreturn*定義求正方形的面積的過(guò)程procedurezmjparameterss,xs=x*xreturn*定義求正方形的周長(zhǎng)的過(guò)程procedurezzcparametersc,xc=4*xreturn例1:用變量作用域編寫(xiě)程序,求任意邊長(zhǎng)的正方形的面積、周長(zhǎng),面積和周長(zhǎng)用過(guò)程實(shí)現(xiàn)。*主程序和過(guò)程在同一程序文件中clearpublicxinput"請(qǐng)輸入正方形的邊長(zhǎng):"toxmj=0zc=0dozmjwithmjdozzc?"正方形的面積為:",mj?"正方形的周長(zhǎng)為:",zcreturn*定義求正方形的面積的過(guò)程procedurezmjparametersss=x*xreturn*定義求正方形的周長(zhǎng)的過(guò)程procedurezzczc=4*xreturn例1:用變量作用域編寫(xiě)程序,求任意邊長(zhǎng)的正方形的面積、周長(zhǎng),面積和周長(zhǎng)用過(guò)程實(shí)現(xiàn)。*主程序和過(guò)程在同一程序文件中clearpublicxinput"請(qǐng)輸入正方形的邊長(zhǎng):"toxmj=0zc=0dozmjwithmjdozzc?"正方形的面積為:",mj?"正方形的周長(zhǎng)為:",zcreturn*定義求正方形的面積的過(guò)程procedurezmjparametersss=x*xreturn*定義求正方形的周長(zhǎng)的過(guò)程procedurezzcprivatezczc=4*xreturn例1:用變量作用域編寫(xiě)程序,求任意邊長(zhǎng)的正方形的面積、周長(zhǎng),面積和周長(zhǎng)用過(guò)程實(shí)現(xiàn)。*主程序和過(guò)程在同一程序文件中clearpublicxlocalzcinput"請(qǐng)輸入正方形的邊長(zhǎng):"toxmj=0zc=0dozmjwithmjdozzc?"正方形的面積為:",mj?"正方形的周長(zhǎng)為:",zcreturn*定義求正方形的面積的過(guò)程procedurezmjparametersss=x*xreturn*定義求正方形的周長(zhǎng)的過(guò)程procedurezzczc=4*xreturn有如下程序,程序執(zhí)行后,b的值為_(kāi)_______。b=5STORE2TOA,c,dDOSUB1WITHA,B,C?bretuprocsub1PARAMETERA,B,CD=B*B-4*A*CDOCASECASED=0b=0CASED<0b=-1CASED>0b=1CASED=0D=100ENDCASEendpro1本周實(shí)驗(yàn)實(shí)驗(yàn)時(shí)間:工商131-2、金融131-2周六14:00-15:30工管131-2、旅游131周六15:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《保單體檢服務(wù)》課件
- 2025屆四川省眉山一中辦學(xué)共同體重點(diǎn)中學(xué)高三第三次模擬考試英語(yǔ)試卷含解析
- 廣東省廣州市2025屆高三下學(xué)期一??荚嚁?shù)學(xué)試題含解析
- 2025屆河北省石家莊二中潤(rùn)德學(xué)校高三適應(yīng)性調(diào)研考試英語(yǔ)試題含解析
- 北京市首都師范大學(xué)附屬回龍觀育新學(xué)校2025屆高考沖刺數(shù)學(xué)模擬試題含解析
- 云南省楚雄州2025屆高三第四次模擬考試英語(yǔ)試卷含解析
- 上海市華東師大三附中2025屆高考數(shù)學(xué)三模試卷含解析
- 山西省長(zhǎng)治市潞州區(qū)長(zhǎng)治二中2025屆高三一診考試語(yǔ)文試卷含解析
- 河南省駐馬店2025屆高三第五次模擬考試英語(yǔ)試卷含解析
- 云南省江川第二中學(xué)2025屆高考適應(yīng)性考試英語(yǔ)試卷含解析
- 2025年中考數(shù)學(xué)備考計(jì)劃
- 高層建筑用電安全管理制度
- 2024學(xué)校安全工作總結(jié)
- 2024-2030年中國(guó)化工設(shè)計(jì)市場(chǎng)發(fā)展前景調(diào)研及投資戰(zhàn)略分析報(bào)告
- 2024年低壓電工復(fù)審模擬考試題庫(kù)及答案(共230題)
- 2024-2025學(xué)年語(yǔ)文二年級(jí)上冊(cè)統(tǒng)編版期末測(cè)試卷(含答案)
- 教育機(jī)構(gòu)課程顧問(wèn)咨詢(xún)流程
- 2024年學(xué)校意識(shí)形態(tài)工作總結(jié)模版(5篇)
- 6《記念劉和珍君》《為了忘卻的紀(jì)念》說(shuō)課稿 2024-2025學(xué)年統(tǒng)編版高中語(yǔ)文選擇性必修中冊(cè)
- 智能化住宅小區(qū)施工合同
- 葡萄酒文化與鑒賞學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評(píng)論
0/150
提交評(píng)論