999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

QB子程序教學難點解析及對策

2009-11-17 09:04:28
中國校外教育(下旬) 2009年14期

朱 洋

【摘 要】《QBASIC程序設計》是計算機專業對口單招指定程序設計語言。本文詳盡講解了子程序的參數、變量等基本概念,重點分析了子程序調用過程中參數的傳輸方式和相互關系,列舉了子程序應用中的特例和注意點。

【關鍵詞】QB 子程序 形參 實參 傳遞

《QBASIC程序設計》作為計算機專業對口單招指定程序設計語言,它在計算機學科體系中的作用和地位是顯而易見的。亦是許多學生最害怕的一門課,尤其是子程序設計部分,學生更是難以理解,筆者執教該課多年,對子程序教學有所感悟,下面,筆者就子程序難點處理的教學對策談談看法。

一、基本概念要搞清,“形”“實”“參”“非”莫混淆

剛學習子程序時,大部分學生感到難理解的是參數和變量的含義,而參數與變量的內涵是學好子程序的基礎。如何判斷一個參數是形參還是實參,主要看這個參數的位置,在調用子程序語句中的參數就是實參,在定義子程序語句中的參數就為形參。對于參數變量和非參數變量,學生容易將子程序中的變量與主程序中的同名實參相混,我們判斷一個變量是參數變量還是非參數變量,主要是針對子程序而言,在子程序中,如果這個變量作為形參,則該變量為參數變量,否則為非參數變量。

二、調用過程要吃透,數據傳遞要把準

1.吃準傳遞方式,弄清相互關系

SUB子程序中所有的非參數變量都是局部變量(全局變量和共享變量除外),它們與主程序中的同名變量沒有任何關系,主程序中的實參與子程序中的形參有兩種傳遞方式,即值傳遞和地址傳遞,判斷參數傳遞的方式,就看實參的形式,如果實參是變量(包括簡單變量、下標變量、數組變量、記錄變量),則為地址傳遞,如果實參是常量、表達式、變量上加一對小括號,則為值傳遞。在例1中,實參a和aa()都是以變量的形式出現,所以是地址傳遞。而實參b+2是表達式,(c)是變量加上了一對小括號,所以是值傳遞。

值傳遞是指調用子程序時,實參和形參分別擁有自己的內存單元,實參僅將值傳遞給形參,而形參不能反方向把值傳遞給主程序中對應的實參。在例1中,實參b+2和(c)都是值傳遞,它們對應的形參分別為y和z,在調用子程序時,實參b+2將值4傳遞給形參y,實參(c)將值3傳遞給形參z,在調用子程序后,形參y和z的值分別變為8和18,但由于是值傳遞方式,形參不能將值傳遞給實參,實參b和c的值仍為2和3,即形參的變化不會影響實參。

地址傳遞是在調用子程序時,實參將自己所占用內存單元的地址傳遞給形參,此時,實參和形參共同占用一個內存單元,在調用子程序過程中,形參改變了,也就是內存單元中的值改變了,所以,實參會跟著變化,例1中a和aa()采用地址傳遞,它們對應的形參為x和 b(),在調用子程序時,其傳遞過程如下表所示:

從表中不難看出,地址傳遞方式中,實參a和形參x占用同一個內存單元,實參aa()和形參b()占用同一個內存區域,所以不管誰的值變化,內存中值就跟著變化,而內存的值變化,實參和形參當然同時變化,所以,地址傳遞方式下,傳遞的方向是雙向的,形參的變化會影響實參。

2.理清傳遞通道,抓住關鍵要點

(1)子程序中的變量,如果是參數變量,則與主程序對應實參有兩種傳遞方式,即值傳遞和地址傳遞,這兩種方式前面已作闡述。

(2)如果子程序中的變量不是參數變量,就看它是否為全局變量,如果是全局變量則該變量在主程序和所有的子程序中為同一變量,如例2,子程序test1中變量d就是一個非參數變量,但它是一個全局變量,所以在主程序和子程序test1中,d是同一個變量,正因為如此,d可以將初始值4帶到子程序中,子程序調用結束后,d的值為11,主程序中的d也為11。

(3)如果子程序中的變量,既不是參數變量又不是全局變量,則看它是否為共享變量,如例1中的a就是共享變量,它不同于全局變量,全局變量作用于主程序和所有的子程序,而它只作用于主程序和申請共享該變量的子程序,與其它子程序無關。

(4)綜上所述,如果一個子程序中變量既不是參數變量,也不是全局變量,又不是共享變量,則該變量與主程序和其他子程序中的同名變量沒有任何關系。

三、幾種特例要牢記,攻克難點才輕松

1.全局變量與值傳遞發生矛盾時,值傳遞優先

當一個全局變量既作為實參又作為形參,并且采用值傳遞方式時,這時就出現了一對矛盾,作為全局變量,在子程序中改變了它的值,主程序中也應該改變,但從值傳遞的角度看,子程序中改變了形參的值不會影響主程序中對應實參的值,此時值傳遞方式優先,如例2,a是一個全局變量,但它同時又作為實參和形參,并且采用的是值傳遞方式,在子程序text3調用結束后,子程序中a的值為2098,但此時這個值并不會傳遞給主程序中的a,主程序中的a仍然為100。

2.如果參數為記錄類型,必須指定其所屬記錄類型

對于實參而言,必須在主程序中先定義記錄結構,然后才能用屬于這種記錄類型的變量作為實參,對于形參,在定義子程序時,就要將它定義為對應實參所屬的記錄類型,否則程序將出錯。

3.static語句的另一種用法

大家都知道,用static語句可以在子程序調用結束后,將子程序中變量的值保留下來,作為下一次調用的初始值,但還可以在子程序中用static語句將全局變量申請為該子程中的局部變量。當然,出了該子程序,此變量仍然是全局變量,如例1中的全局變量b,在子程序test3中,用語句static b將其申請為局部變量。所以,盡管主程序中b的值為123,但這個值并不能帶到test3中,在test3中,b的值為0,但在其他子程序中,b仍然為全局變量。

參考文獻:

[1]譚浩強.QBASIC程序設計.北京:清華大學出版社,2000.

[2]譚浩強.QBASIC語言教程.北京:電子工業出版社,1997.

[3]教育部考試中心.全國計算機等級考試大綱.北京:高等教育出版社,2002.

主站蜘蛛池模板: 国产精品久久久精品三级| 国内精品久久九九国产精品| 久久精品国产国语对白| 影音先锋亚洲无码| 91在线激情在线观看| 欧美19综合中文字幕| 久草美女视频| 亚洲国产91人成在线| 国产午夜一级淫片| 另类欧美日韩| 国产精品视频久| 又黄又湿又爽的视频| 亚洲av成人无码网站在线观看| 丁香婷婷激情网| 在线精品视频成人网| 啦啦啦网站在线观看a毛片| 亚洲综合精品第一页| 成年人午夜免费视频| 久久伊人操| 2020国产精品视频| 91免费国产高清观看| 亚洲综合在线网| 亚洲黄色网站视频| 超清无码熟妇人妻AV在线绿巨人 | 国产乱子伦手机在线| 日韩最新中文字幕| 亚洲综合专区| 日本成人一区| 国产又粗又猛又爽视频| 国产精品青青| 91无码人妻精品一区| 中文字幕在线欧美| 亚洲一区无码在线| 久久午夜影院| 亚洲第一福利视频导航| 国产精品尤物铁牛tv | 亚洲欧美一区二区三区麻豆| 日韩二区三区| 欧美激情视频一区二区三区免费| 精品成人一区二区三区电影| 国产91精品最新在线播放| 免费不卡视频| 国产www网站| 亚洲成网站| 国产色伊人| 欧美日韩高清| 久久一级电影| 中国黄色一级视频| 免费人成在线观看视频色| 国产激爽爽爽大片在线观看| 午夜国产在线观看| 久久香蕉国产线看精品| 欧美成人精品一级在线观看| 狠狠色丁婷婷综合久久| 欧美视频在线第一页| 国产本道久久一区二区三区| 国产视频入口| 99久久精品无码专区免费| 中文字幕在线欧美| 欧美曰批视频免费播放免费| 久久国产精品电影| 亚洲精品高清视频| 91在线无码精品秘九色APP| 免费无遮挡AV| 国产视频a| 国产综合精品日本亚洲777| 国产成人综合在线视频| 91免费国产高清观看| 久草视频福利在线观看| 色一情一乱一伦一区二区三区小说| 亚洲一区二区三区中文字幕5566| 91亚洲视频下载| 亚洲综合18p| 999福利激情视频| 亚洲午夜国产精品无卡| 欧美一级在线看| 色综合国产| 999福利激情视频| 99视频在线观看免费| 最新国产成人剧情在线播放| 国产导航在线| 欧美日韩成人在线观看|