• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    二分課堂法在程序語言教學(xué)中的應(yīng)用

    2015-05-30 13:16:01管麗娟
    軟件工程 2015年11期

    摘 要:根據(jù)循環(huán)嵌套的特點(diǎn),結(jié)合本人教學(xué)實(shí)踐,運(yùn)用二分課堂法,提出了一種較為理想的循環(huán)嵌套教學(xué)方法,意在倡導(dǎo)以教師為主導(dǎo),以學(xué)生為主體的教學(xué)理念,改變傳統(tǒng)的“灌輸式”教學(xué)模式。該方法在C語言、VC++、VB等程序語言教學(xué)中得到試用,其教學(xué)效果反應(yīng)良好。

    關(guān)鍵詞:二分課堂法;程序語言教學(xué);循環(huán)嵌套

    中圖分類號:TP312 文獻(xiàn)標(biāo)識碼:A

    1 引言(Introduction)

    《程序設(shè)計(jì)語言》是計(jì)算機(jī)及其相關(guān)專業(yè)(電子商務(wù),信息管理等)的專業(yè)基礎(chǔ)課,高等院校開設(shè)的入門程序語言課一般都是C語言、VC++、VB、C#、JAVA等。然而對于初學(xué)者來說,不管學(xué)哪一門語言,學(xué)好三種基本編程結(jié)構(gòu):即順序結(jié)構(gòu),選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)是關(guān)鍵[1-4],而循環(huán)的嵌套使用,是初學(xué)者學(xué)習(xí)過程的重點(diǎn),也是難點(diǎn)。

    2 二分課堂法(The method of dichotomous class)

    隨著微課、慕課、翻轉(zhuǎn)課堂等網(wǎng)絡(luò)教學(xué)方法在《程序設(shè)計(jì)語言》教學(xué)中的普及,教師應(yīng)如何抓住課堂的分分秒秒來提高教學(xué)質(zhì)量是高校教師面臨的困惑?其實(shí)無論任一門課程學(xué)習(xí)還是一個知識點(diǎn)學(xué)習(xí),都是一個從0—N過程。如何要把握好0—N過程?需分兩個步驟。第一步:0—1的基礎(chǔ),主要由主講教師講透知識點(diǎn)原理,思想,以及簡單運(yùn)用;第二步:1—N的擴(kuò)充與探討,需要學(xué)生與教師互動,首先由學(xué)生課后思考,探究,然后由教師提煉學(xué)生的研究成果,并進(jìn)行歸納總結(jié),真正讓學(xué)生理解并掌握該知識。

    所謂二分課堂法,就是將一次課(一般兩學(xué)時(shí))進(jìn)行二分,前半部分用探討和擴(kuò)充上一次課的內(nèi)容,后半部分用于新知識的傳授,如此重復(fù)。此方法在文科課程教學(xué)中的使用已屢見不鮮,但在工科和理科課程教學(xué)中并不普遍,如能巧妙運(yùn)用,將達(dá)到事半功倍的效果。

    下面結(jié)合本人在一線教育中多年的教學(xué)實(shí)踐,談一談循環(huán)嵌套的教學(xué)方法。

    3 二分課堂法在循環(huán)嵌套中的應(yīng)用(The application

    of dichotomous class in nesting loop)

    3.1 0—1的循環(huán)嵌套知識的闡述

    首先要講透循環(huán)結(jié)構(gòu)的編程思想(以C語言為例),所謂循環(huán)就是重復(fù)[2],但重復(fù)的內(nèi)容(即循環(huán)體)和重復(fù)次數(shù)(即循環(huán)次數(shù))務(wù)必要給同學(xué)澄清,這一點(diǎn)是學(xué)習(xí)循環(huán)嵌套的前提。

    例: for (j=1;j<=4;j++) printf(" ");

    //重復(fù)的內(nèi)容是輸出" ",重復(fù)的次數(shù)是4次,即整個語句的功能就是輸出4個空格

    同理: for (k=1;k<=4;k++) printf("*");

    //重復(fù)的內(nèi)容是輸出"*",重復(fù)的次數(shù)是4次,即整個語句的功能就是輸出4個*"號

    其次要講透循環(huán)嵌套的編程思想,所謂循環(huán)的嵌套就是循環(huán)(外循環(huán))里面又有循環(huán)(內(nèi)循環(huán)),即內(nèi)循環(huán)又是一個完整的循環(huán)結(jié)構(gòu)[2]。

    例:

    for (i=1;i<=4;i++)

    { }

    如果在上面的{ }內(nèi)添加一個完整的循環(huán)結(jié)構(gòu),就成了循環(huán)嵌套的編程。

    即:for (i=1;i<=4;i++)

    { for (j=1;j<=4;j++) printf("*"); }

    因?yàn)榛ɡㄌ杻?nèi)的循環(huán)(內(nèi)循環(huán))是實(shí)現(xiàn)重復(fù)輸出4個"*"號,現(xiàn)在是要把這個動作重復(fù)4次,將會輸出16個"*"號。這一點(diǎn)讓同學(xué)們明白了循環(huán)嵌套的思想。

    下面再來把這道題擴(kuò)展一下,主要通過改變內(nèi)循環(huán)的內(nèi)容來進(jìn)行拓展,即更改花括號里面的內(nèi)容來實(shí)現(xiàn)。

    for (i=1;i<=4;i++)

    { for (j=1;j<=4;j++) printf(" ");

    for (k=1;k<=4;k++) printf(" *");

    printf("\n "); }

    要求同學(xué)們回答這個循環(huán)嵌套的循環(huán)體是什么?即i循環(huán)的循環(huán)體包括哪些內(nèi)容?

    先輸出4個空格,再連續(xù)輸出4個"*"號,最后是換行。把這個動作重復(fù)4次,程序運(yùn)行結(jié)果如圖1所示。

    圖1 程序運(yùn)行結(jié)果

    Fig.1 The results of program running

    緊接著要求同學(xué)們思考輸出如下圖形[3](圖2),該怎樣編程?

    圖2 上三角形

    Fig.2 Upper triangle

    同學(xué)們的思維基本上都能回答出如下編程框架;每行都是先輸出空格,再輸出"*"號,最后是換行,如此重復(fù)4次。

    for (i=1;i<=4;i++)

    { for ( …… ) printf("*"); //輸出空格

    for ( …… ) printf(" "); //輸出"*"號

    printf("\n "); } //換行

    問題是每行究竟要輸出多少空格,多少個"*"號?可以先給出點(diǎn)提示,上圖中每一行的空格和"*"號如作如下分析:

    (1)每一行后面的空格可以不用輸出(因?yàn)椴挥绊憟D形的輸出效果)。

    (2)這個圖形的"*"號是對稱的,如果畫一條對稱軸的話(如圖3所示),"*"號的個數(shù)為左邊"*"號個數(shù)的2倍加1。

    圖3 平分上三角形

    Fig.3 Upper triangle dividing

    第i行 空格(個數(shù)j) "*"號 (左邊"*"號個數(shù)k)

    i=1 3 0

    i=2 2 1

    i=3 1 2

    i=4 0 3

    發(fā)現(xiàn)秘密: 行號i加每行空格個數(shù)等于4 "*"號個數(shù)比行號i始終少1

    得出: j=4-i k=i-1

    于是每行空格個數(shù)為j=4-i,每行"*"號個數(shù)為2*k+1,即2*(i-1)+1=2*i-1,最后補(bǔ)全程序得到如下程序段:

    for (i=1;i<=4;i++)

    { for (j=1;j<=4-i;j++) printf(" ");

    for (k=1;k<=2*i-1;k++) printf("*");

    printf("\n "); }

    到此為止,一個上三角形的圖形已被成功輸出,我們已經(jīng)完成0—1基礎(chǔ)學(xué)習(xí)過程;一步是要將同學(xué)們分成3—5組,讓同學(xué)們圍繞以下問題進(jìn)行課后思考與探究,為下一次課進(jìn)行1—N的拓展做好準(zhǔn)備。

    課后思考題:

    (1)如何輸出下三角形、直角三角形。

    (2)如何輸出梯形,平行四邊形,矩形。

    (3)如何輸出菱形,漏斗[3]。

    3.2 1—N循環(huán)嵌套知識的拓展

    經(jīng)過上機(jī)練習(xí),教材反復(fù)的滲透,在第二次課的討論與總結(jié)中,各組同學(xué)不僅完成課后作業(yè),還進(jìn)行循環(huán)嵌套知識點(diǎn)的總結(jié),匯總?cè)缦拢?/p>

    (1)簡單圖形的輸出:即空格("*"號)個數(shù)逐步增加(減少)的情形,參照例題便可實(shí)現(xiàn),如上述的(1),(2)中的圖形。

    (2)組合圖形的輸出:即空格("*"號)個數(shù)先增加(減少),然后減少(增加)的情形,需要分開輸出(如菱形的輸出需將上三角和下三角分開輸出)不能一氣呵成,如上述的(3)中圖形。

    (3)循環(huán)嵌套可以多層次嵌套:如把輸出菱形的程序段,重復(fù)N次,將會輸出一條菱形的項(xiàng)鏈。

    尤其是最后一點(diǎn)的匯總,盡管只有一組同學(xué)(實(shí)際上為成績較好者的一組,且上機(jī)試運(yùn)行過)提出,但是我還是感到非常欣慰,因?yàn)閷τ诔鯇W(xué)者來說,循環(huán)的嵌套本來就比較難理解,他們能想出再次嵌套,不能不說這得益于對循環(huán)嵌套知識理解透徹和同學(xué)們課后大膽探究的結(jié)果??磥砣缜擅钸\(yùn)用二分課堂法,不僅能讓同學(xué)們充分發(fā)揮腦力、動手能力,而且能鼓動同學(xué)們大膽創(chuàng)新,挖掘同學(xué)們探究問題的興趣。

    4 結(jié)論(Conclusion)

    以上是二分課堂法在循環(huán)嵌套中的應(yīng)用,該教學(xué)方法在C語言、VC++、VB等程序語言教學(xué)中得到試用,其教學(xué)效果反應(yīng)很好。學(xué)生對循環(huán)嵌套意義及其應(yīng)用有了較深刻的認(rèn)識,做到能夠靈活運(yùn)用而不是死記硬背,此外為后面學(xué)習(xí)數(shù)組排序、遞歸調(diào)用、數(shù)據(jù)結(jié)構(gòu)中二叉樹的遍歷打下了良好基礎(chǔ)。

    參考文獻(xiàn)(References)

    [1] 林卓然.VB語言程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2013.

    [2] 譚浩強(qiáng).C程序設(shè)計(jì)(第4版)[M].北京:清華大學(xué)出版社,2010.

    [3] 譚浩強(qiáng).C程序設(shè)計(jì)(第4版)學(xué)習(xí)輔導(dǎo)[M].北京:清華大學(xué)出

    版社,2010.

    [4] 譚浩強(qiáng).C++程序設(shè)計(jì)(第2版)[M].北京:清華大學(xué)出版社,

    2011.

    作者簡介:

    管麗娟(1973-),女,碩士,講師.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用.

    柘城县| 定襄县| 平邑县| 瑞安市| 桑日县| 盱眙县| 莲花县| 阳泉市| 罗田县| 昭平县| 西峡县| 济源市| 景泰县| 凉城县| 沂南县| 正定县| 东平县| 泽库县| 大荔县| 乌鲁木齐县| 织金县| 汉中市| 体育| 梨树县| 霍州市| 孝昌县| 凤冈县| 黄平县| 娄烦县| 南投县| 南木林县| 文山县| 晋宁县| 松桃| 于田县| 秦安县| 舟曲县| 恩平市| 德兴市| 视频| 邻水|