• 
    

    
    

      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)用.

      顺昌县| 抚宁县| 双桥区| 滁州市| 定安县| 育儿| 麻江县| 新密市| 海阳市| 洛川县| 安福县| 榆社县| 资兴市| 巴林右旗| 花莲县| 隆子县| 光泽县| 突泉县| 馆陶县| 蓝山县| 日喀则市| 马鞍山市| 游戏| 台南市| 塔城市| 昆山市| 济宁市| 满洲里市| 公主岭市| 长宁区| 永安市| 陕西省| 无锡市| 定安县| 迁西县| 彩票| 靖西县| 株洲县| 台南市| 如皋市| 綦江县|