版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
主要內(nèi)容:1、子程序、過程文件的創(chuàng)建。2、子程序、過程文件的調(diào)用、參數(shù)傳遞。3、自定義函數(shù)的定義。4、自定義函數(shù)的調(diào)用。5、變量的作用域:全局變量、局部變量、本地變量。子程序、過程和函數(shù)子程序、過程和函數(shù)問題提出:設(shè)計(jì)一個(gè)程序完成下面計(jì)算:其中,m、n為正整數(shù),m>n,該程序如何設(shè)計(jì)更有效?例:編程求
*求組合數(shù)程序zhs1.prginput"請輸入n="toninput"請輸入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í)行的語句序列或獨(dú)立的功能子模塊定義成子程序、過程或用戶自定義函數(shù),需要執(zhí)行時(shí)只需調(diào)用它即可。子程序、過程和函數(shù)主程序、子程序、過程、函數(shù)的概念:主程序:指只調(diào)用其他程序的程序。子程序:具有相對的獨(dú)立性、能完成某一功能、能被其他程序調(diào)用的程序。過程:是指程序文件中的一個(gè)子程序模塊。自定義函數(shù):與過程的區(qū)別在于返回語句帶有返回值。子程序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á)式或括號括起來的變量,默認(rèn)的傳遞方式是值傳遞,此時(shí)子程序中形參的變化不會影響到調(diào)用程序中的實(shí)參。如果實(shí)參是沒有用括號括起來的變量,默認(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"請輸入n="toninput"請輸入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é)果:請輸入n=請輸入m=n!=6m!=120(m-n)!=2Cmn=10.0000↙3↙5過程過程可以分為內(nèi)部過程和外部過程。內(nèi)部過程:過程定義在主調(diào)程序文件中,一般將過程定義在程序后面。外部過程:過程定義在過程文件(prg)中。一個(gè)過程文件可以包含多個(gè)過程,每個(gè)過程仍然是獨(dú)立的,可以單獨(dú)調(diào)用。1.過程的建立
格式:procedure<過程名>[parameters<形參表>]<過程語句序列>return[tomaster][endproc]
功能:將一個(gè)語句系列定義為以<過程名>為名的過程。在主程序或過程文件中創(chuàng)建過程2.過程的調(diào)用(1)內(nèi)部過程:被調(diào)用的過程在主調(diào)程序中(后面)
。格式:do<過程名>[with<實(shí)參表>](2)外部過程:被調(diào)用的過程在過程文件中。①先打開過程文件,再調(diào)用過程格式:setprocedureto<過程文件名>
功能:該命令打開一個(gè)過程文件。格式:closeprocedure或setprocedureto
功能:該命令關(guān)閉當(dāng)前過程文件。②直接用do命令調(diào)用
do<過程名>[with<實(shí)參表>][in<過程文件名>]3.參數(shù)傳遞
過程的參數(shù)傳遞和子程序的參數(shù)傳遞方式相同。例:用主程序調(diào)用過程的方式編寫程序,求任意邊長的正方形的面積、周長。
*主程序和過程在同一程序文件中clearinput"請輸入正方形的邊長:"tobmj=0zc=0dozmjwithmj,bdozzcwithzc,b?"正方形的面積為:",mj?"正方形的周長為:",zc*定義求正方形的面積的過程procedurezmjparameterss,xs=x*xreturn*定義求正方形的周長的過程procedurezzcparametersc,xc=4*xreturn例:用主程序調(diào)用過程的方式編寫程序,求任意邊長的正方形的面積、周長。
*主程序和過程不在同一程序文件中*主程序main3.prgclearinput"請輸入正方形的邊長:"tobmj=0zc=0dozmjwithmj,binproc1dozzcwithzc,binproc1?"正方形的面積為:",mj?"正方形的周長為:",zc*過程文件proc1.prg*定義求正方形的面積的過程procedurezmjparameterss,xs=x*xreturn*定義求正方形的周長的過程procedurezzcparametersc,xc=4*xreturn自定義函數(shù)
1.自定義函數(shù)的定義格式:function<函數(shù)名>
[parameters<形參表>]
<命令序列>
return[<表達(dá)式>]
[endfunc]功能:用來定義一個(gè)函數(shù),<函數(shù)名>是自定義函數(shù)的名字。說明:return返回函數(shù)的值,如果省略“表達(dá)式”,則返回.t.
2.自定義函數(shù)的調(diào)用格式:<函數(shù)名>(<實(shí)參表>)3、參數(shù)傳遞在自定義函數(shù)中,默認(rèn)的參數(shù)傳遞方式是值傳遞方式例:編程求
clearinput"請輸入n="toninput"請輸入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ù)傳遞可以通過兩種方式來解決:利用參數(shù)實(shí)現(xiàn)數(shù)據(jù)傳遞利用變量的作用域?qū)崿F(xiàn)數(shù)據(jù)傳遞變量作用域:內(nèi)存變量的有效作用范圍。如果一個(gè)變量在某個(gè)程序或過程或函數(shù)范圍內(nèi)是有效的,則該程序或過程或函數(shù)為該變量的作用域,在此作用域內(nèi)可以引用該變量。根據(jù)作用域的不同,內(nèi)存變量可分為全局變量、私有變量和局部變量三種類型。變量的作用域
1.全局變量(公共變量)全局變量是指聲明后,程序中的任何模塊都能使用的內(nèi)存變量。(1)全局變量的定義1)在命令窗口創(chuàng)建的變量和數(shù)組將自動(dòng)成為全局變量。2)用public語句定義:格式:public<內(nèi)存變量名表/數(shù)組名表>功能:定義全局內(nèi)存變量或數(shù)組。(2)說明程序結(jié)束時(shí),全局變量不會自動(dòng)釋放,需要用clearall或clearmemory或release等命令釋放。變量的作用域2.私有變量只局限在定義它的程序模塊以及下級模塊(該模塊所調(diào)用的模塊)中有效。當(dāng)定義它的模塊運(yùn)行結(jié)束,它被自動(dòng)釋放。(1)局部變量的定義①在一個(gè)程序或過程中建立的內(nèi)存變量,如果未加任何說明,自動(dòng)成為私有變量。②格式:private<內(nèi)存變量名表/數(shù)組名表>(2)說明:定義私有內(nèi)存變量和數(shù)組,可以屏蔽來自上級模塊中與當(dāng)前局部變量同名的變量,使在當(dāng)前模塊中對局部變量的操作,不影響上級模塊中同名變量的值。即如果本模塊的私有變量和上層模塊中的變量重名,則本模塊的變量優(yōu)先,上層模塊中的變量被屏蔽,直到本模塊運(yùn)行結(jié)束,上層變量恢復(fù)使用。變量的作用域3.局部變量只局限在定義它的程序模塊中有效,一旦定義它的程序模塊運(yùn)行結(jié)束,它便自動(dòng)被清除。(1)局部變量的定義格式:local<內(nèi)存變量名表/數(shù)組名表>功能:定義局部內(nèi)存變量和數(shù)組,并屏蔽所有與它同名的變量,使在當(dāng)前模塊中對局部變量的操作,不影響其它模塊中同名變量的值。說明:和前兩種的不同在于,局部變量只能在本程序模塊中使用,因此它不能負(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ù)傳遞作用任意一對調(diào)用程序與被調(diào)過程間雙向傳遞。從調(diào)用程序到被調(diào)過程雙向傳遞。無當(dāng)前程序模塊及其下屬程序模塊。例1:用變量作用域編寫程序,求任意邊長的正方形的面積、周長,面積和周長用過程實(shí)現(xiàn)。*主程序和過程在同一程序文件中clearinput"請輸入正方形的邊長:"tobmj=0zc=0dozmjwithmj,bdozzcwithzc,b?"正方形的面積為:",mj?"正方形的周長為:",zcreturn*定義求正方形的面積的過程procedurezmjparameterss,xs=x*xreturn*定義求正方形的周長的過程procedurezzcparametersc,xc=4*xreturn例1:用變量作用域編寫程序,求任意邊長的正方形的面積、周長,面積和周長用過程實(shí)現(xiàn)。*主程序和過程在同一程序文件中clearpublicxinput"請輸入正方形的邊長:"toxmj=0zc=0dozmjwithmjdozzc?"正方形的面積為:",mj?"正方形的周長為:",zcreturn*定義求正方形的面積的過程procedurezmjparametersss=x*xreturn*定義求正方形的周長的過程procedurezzczc=4*xreturn例1:用變量作用域編寫程序,求任意邊長的正方形的面積、周長,面積和周長用過程實(shí)現(xiàn)。*主程序和過程在同一程序文件中clearpublicxinput"請輸入正方形的邊長:"toxmj=0zc=0dozmjwithmjdozzc?"正方形的面積為:",mj?"正方形的周長為:",zcreturn*定義求正方形的面積的過程procedurezmjparametersss=x*xreturn*定義求正方形的周長的過程procedurezzcprivatezczc=4*xreturn例1:用變量作用域編寫程序,求任意邊長的正方形的面積、周長,面積和周長用過程實(shí)現(xiàn)。*主程序和過程在同一程序文件中clearpublicxlocalzcinput"請輸入正方形的邊長:"toxmj=0zc=0dozmjwithmjdozzc?"正方形的面積為:",mj?"正方形的周長為:",zcreturn*定義求正方形的面積的過程procedurezmjparametersss=x*xreturn*定義求正方形的周長的過程procedurezzczc=4*xreturn有如下程序,程序執(zhí)行后,b的值為________。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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游餐飲員工績效總結(jié)
- 木材銷售工作總結(jié)
- 服裝店衛(wèi)生衛(wèi)生規(guī)范標(biāo)準(zhǔn)
- 十年級化學(xué)學(xué)科的教學(xué)工作總結(jié)
- 制冷空調(diào)行業(yè)人力資源管理實(shí)踐
- 《疼痛治療》課件
- 《房地產(chǎn)市場簡報(bào)》課件
- 2021年廣東省汕尾市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2024年四川省德陽市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年內(nèi)蒙古自治區(qū)烏海市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 泌尿科一科一品匯報(bào)課件
- 2024年江西省三校生高職英語高考試卷
- 中國古代文學(xué)智慧樹知到期末考試答案章節(jié)答案2024年廣州大學(xué)
- 重慶市南岸區(qū)2022-2023學(xué)年五年級上學(xué)期期末語文試卷
- 現(xiàn)澆鋼筋混凝土整體式肋梁樓蓋結(jié)構(gòu)-課程設(shè)計(jì)
- 浙江省舟山市2023-2024學(xué)年高二上學(xué)期1月期末檢測地理試題(解析版)
- 《寫字樓招商方案》課件
- 服務(wù)器維保應(yīng)急預(yù)案
- 煙花爆竹經(jīng)營
- 文旅劇本殺項(xiàng)目策劃方案
- 藥房庫存盤點(diǎn)與管理培訓(xùn)
評論
0/150
提交評論