




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 子程序教學(xué)難點(diǎn)解析及對(duì)策 朱洋【摘 要】qbasic程序設(shè)計(jì)是計(jì)算機(jī)專業(yè)對(duì)口單招指定程序設(shè)計(jì)語言。本文詳盡講解了子程序的參數(shù)、變量等基本概念,重點(diǎn)分析了子程序調(diào)用過程中參數(shù)的傳輸方式和相互關(guān)系,列舉了子程序應(yīng)用中的特例和注意點(diǎn)?!娟P(guān)鍵詞】qb 子程序 形參 實(shí)參 傳遞qbasic程序設(shè)計(jì)作為計(jì)算機(jī)專業(yè)對(duì)口單招指定程序設(shè)計(jì)語言,它在計(jì)算機(jī)學(xué)科體系中的作用和地位是顯而易見的。亦是許多學(xué)生最害怕的一門課,尤其是子程序設(shè)計(jì)部分,學(xué)生更是難以理解,筆者執(zhí)教該課多年,對(duì)子程序教學(xué)有所感悟,下面,筆者就子程序難點(diǎn)處理的教學(xué)對(duì)策談?wù)効捶?。一、基本概念要搞?/p>
2、,“形”“實(shí)”“參”“非”莫混淆剛學(xué)習(xí)子程序時(shí),大部分學(xué)生感到難理解的是參數(shù)和變量的含義,而參數(shù)與變量的內(nèi)涵是學(xué)好子程序的基礎(chǔ)。如何判斷一個(gè)參數(shù)是形參還是實(shí)參,主要看這個(gè)參數(shù)的位置,在調(diào)用子程序語句中的參數(shù)就是實(shí)參,在定義子程序語句中的參數(shù)就為形參。對(duì)于參數(shù)變量和非參數(shù)變量,學(xué)生容易將子程序中的變量與主程序中的同名實(shí)參相混,我們判斷一個(gè)變量是參數(shù)變量還是非參數(shù)變量,主要是針對(duì)子程序而言,在子程序中,如果這個(gè)變量作為形參,則該變量為參數(shù)變量,否則為非參數(shù)變量。二、調(diào)用過程要吃透,數(shù)據(jù)傳遞要把準(zhǔn)1.吃準(zhǔn)傳遞方式,弄清相互關(guān)系sub子程序中所有的非參數(shù)變量都是局部變量(全局變量和共享變量除外),它們
3、與主程序中的同名變量沒有任何關(guān)系,主程序中的實(shí)參與子程序中的形參有兩種傳遞方式,即值傳遞和地址傳遞,判斷參數(shù)傳遞的方式,就看實(shí)參的形式,如果實(shí)參是變量(包括簡(jiǎn)單變量、下標(biāo)變量、數(shù)組變量、記錄變量),則為地址傳遞,如果實(shí)參是常量、表達(dá)式、變量上加一對(duì)小括號(hào),則為值傳遞。在例1中,實(shí)參a和aa()都是以變量的形式出現(xiàn),所以是地址傳遞。而實(shí)參b+2是表達(dá)式,(c)是變量加上了一對(duì)小括號(hào),所以是值傳遞。值傳遞是指調(diào)用子程序時(shí),實(shí)參和形參分別擁有自己的內(nèi)存單元,實(shí)參僅將值傳遞給形參,而形參不能反方向把值傳遞給主程序中對(duì)應(yīng)的實(shí)參。在例1中,實(shí)參b+2和(c)都是值傳遞,它們對(duì)應(yīng)的形參分別為y和z,在調(diào)用子
4、程序時(shí),實(shí)參b+2將值4傳遞給形參y,實(shí)參(c)將值3傳遞給形參z,在調(diào)用子程序后,形參y和z的值分別變?yōu)?和18,但由于是值傳遞方式,形參不能將值傳遞給實(shí)參,實(shí)參b和c的值仍為2和3,即形參的變化不會(huì)影響實(shí)參。地址傳遞是在調(diào)用子程序時(shí),實(shí)參將自己所占用內(nèi)存單元的地址傳遞給形參,此時(shí),實(shí)參和形參共同占用一個(gè)內(nèi)存單元,在調(diào)用子程序過程中,形參改變了,也就是內(nèi)存單元中的值改變了,所以,實(shí)參會(huì)跟著變化,例1中a和aa()采用地址傳遞,它們對(duì)應(yīng)的形參為x和 b(),在調(diào)用子程序時(shí),其傳遞過程如下表所示:從表中不難看出,地址傳遞方式中,實(shí)參a和形參x占用同一個(gè)內(nèi)存單元,實(shí)參aa()和形參b()占用同一個(gè)
5、內(nèi)存區(qū)域,所以不管誰的值變化,內(nèi)存中值就跟著變化,而內(nèi)存的值變化,實(shí)參和形參當(dāng)然同時(shí)變化,所以,地址傳遞方式下,傳遞的方向是雙向的,形參的變化會(huì)影響實(shí)參。2.理清傳遞通道,抓住關(guān)鍵要點(diǎn)(1)子程序中的變量,如果是參數(shù)變量,則與主程序?qū)?yīng)實(shí)參有兩種傳遞方式,即值傳遞和地址傳遞,這兩種方式前面已作闡述。(2)如果子程序中的變量不是參數(shù)變量,就看它是否為全局變量,如果是全局變量則該變量在主程序和所有的子程序中為同一變量,如例2,子程序test1中變量d就是一個(gè)非參數(shù)變量,但它是一個(gè)全局變量,所以在主程序和子程序test1中,d是同一個(gè)變量,正因?yàn)槿绱?d可以將初始值4帶到子程序中,子程序調(diào)用結(jié)束后,
6、d的值為11,主程序中的d也為11。(3)如果子程序中的變量,既不是參數(shù)變量又不是全局變量,則看它是否為共享變量,如例1中的a就是共享變量,它不同于全局變量,全局變量作用于主程序和所有的子程序,而它只作用于主程序和申請(qǐng)共享該變量的子程序,與其它子程序無關(guān)。(4)綜上所述,如果一個(gè)子程序中變量既不是參數(shù)變量,也不是全局變量,又不是共享變量,則該變量與主程序和其他子程序中的同名變量沒有任何關(guān)系。三、幾種特例要牢記,攻克難點(diǎn)才輕松1.全局變量與值傳遞發(fā)生矛盾時(shí),值傳遞優(yōu)先當(dāng)一個(gè)全局變量既作為實(shí)參又作為形參,并且采用值傳遞方式時(shí),這時(shí)就出現(xiàn)了一對(duì)矛盾,作為全局變量,在子程序中改變了它的值,主程序中也應(yīng)
7、該改變,但從值傳遞的角度看,子程序中改變了形參的值不會(huì)影響主程序中對(duì)應(yīng)實(shí)參的值,此時(shí)值傳遞方式優(yōu)先,如例2,a是一個(gè)全局變量,但它同時(shí)又作為實(shí)參和形參,并且采用的是值傳遞方式,在子程序text3調(diào)用結(jié)束后,子程序中a的值為2098,但此時(shí)這個(gè)值并不會(huì)傳遞給主程序中的a,主程序中的a仍然為100。2.如果參數(shù)為記錄類型,必須指定其所屬記錄類型對(duì)于實(shí)參而言,必須在主程序中先定義記錄結(jié)構(gòu),然后才能用屬于這種記錄類型的變量作為實(shí)參,對(duì)于形參,在定義子程序時(shí),就要將它定義為對(duì)應(yīng)實(shí)參所屬的記錄類型,否則程序?qū)⒊鲥e(cuò)。3.static語句的另一種用法大家都知道,用static語句可以在子程序調(diào)用結(jié)束后,將子程
8、序中變量的值保留下來,作為下一次調(diào)用的初始值,但還可以在子程序中用static語句將全局變量申請(qǐng)為該子程中的局部變量。當(dāng)然,出了該子程序,此變量仍然是全局變量,如例1中的全局變量b,在子程序test3中,用語句static b將其申請(qǐng)為局部變量。所以,盡管主程序中b的值為123,但這個(gè)值并不能帶到test3中,在test3中,b的值為0,但在其他子程序中,b仍然為全局變量。參考文獻(xiàn):1譚浩強(qiáng).qbasic程序設(shè)計(jì).北京:清華大學(xué)出版社,2000.2譚浩強(qiáng).qbasic語言教程.北京:電子工業(yè)出版社,1997.3教育部考試中心.全國計(jì)算機(jī)等級(jí)考試大綱.北京:高等教育出版社,2002.中國校外教育(下旬)2009年14期中國校
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度辦公用地租用與智能會(huì)議室服務(wù)合同
- 科研機(jī)構(gòu)班車運(yùn)輸合同
- 國有林場(chǎng)森林資源管護(hù)承包合同
- 2025-2030年中國雞骨素市場(chǎng)運(yùn)營狀況及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國高分子發(fā)泡材料市場(chǎng)競(jìng)爭(zhēng)格局及前景趨勢(shì)預(yù)測(cè)報(bào)告
- 2025-2030年中國陶瓷茶具產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及發(fā)展趨勢(shì)研究報(bào)告
- 2025-2030年中國膠合板行業(yè)十三五規(guī)劃及發(fā)展盈利分析報(bào)告
- 2025-2030年中國精密壓鑄機(jī)加工行業(yè)運(yùn)營狀況與發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國立磨市場(chǎng)運(yùn)行態(tài)勢(shì)及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國監(jiān)控?cái)z像機(jī)行業(yè)運(yùn)行狀況及投資戰(zhàn)略研究報(bào)告
- 網(wǎng)絡(luò)試運(yùn)行方案
- 高考英語語法考點(diǎn)梳理
- 《護(hù)患溝通》課件
- 2024-2025學(xué)年新教材高中化學(xué) 第三章 鐵 金屬材料 2.1 合金說課稿 新人教版必修1
- 《籃球防守腳步移動(dòng)技術(shù) 滑步》教案
- 完整版項(xiàng)目部組織機(jī)構(gòu)圖
- 浙江省杭州市2023-2024學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 人工智能客服機(jī)器人使用手冊(cè)
- 品牌全球化體育營銷趨勢(shì)洞察報(bào)告 2024
- (新版)拖拉機(jī)駕駛證科目一知識(shí)考試題庫500題(含答案)
- (人衛(wèi)版第九版?zhèn)魅静W(xué)總論(一))課件
評(píng)論
0/150
提交評(píng)論