• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      C語言循環(huán)結(jié)構(gòu)教學的設計與實踐

      2018-04-02 01:24:50娟,張
      計算機教育 2018年3期
      關鍵詞:程序設計語句案例

      李 娟,張 燕

      (西北民族大學 電氣工程學院,甘肅 蘭州 730000)

      1 背 景

      C語言程序設計是針對大一學生開設的一門程序設計課程,是一門語法靈活、功能齊全、應用廣泛的高級程序設計語言,是后續(xù)程序設計課程的重要基礎。通過學習這門課程,學生主要掌握程序設計的基本方法,培養(yǎng)正確的程序設計思想,熟練地使用C語言編寫程序并具備程序調(diào)試的能力,為后續(xù)課程的學習奠定一定的計算機基礎,同時也為工程技術(shù)工作者使用計算機解決實際問題提供方法。該課程的特點是理論與實踐相結(jié)合,理論教學是實踐教學的基礎,實踐教學是理論教學的強化和應用。

      在實際教學中,教師講課采用的是傳統(tǒng)的“純理論”講授方式,導致該課程出現(xiàn)很多弊端。第一,C語言的語法和概念比較多,現(xiàn)有的大部分教材是先給出某個知識點,然后闡述該知識點的語法形式和定義,最后舉例說明。傳統(tǒng)教學中,教師也是采用這樣的授課思維方式,忽視了學習C語言的關鍵是讓學生掌握程序設計的方法并解決實際問題,教出來的學生只能看懂程序卻不能使用C語言編寫程序解決實際的問題?!八惴ㄊ浅绦蛟O計的靈魂,語言是工具,編程需要采用合適的方法”[1],因此在講解C語言的時候要重視算法的重要性。第二,C語言是一門實踐性很強的課程[2],上機實踐是C語言的一個關鍵環(huán)節(jié)。很多高校C語言的理論學時很充足,而上機實踐學時較少,上機課程只是簡單的程序代碼輸入,屬于驗證性的實驗,設計性和綜合性的實驗很少,沒有起到上機實驗鍛煉編程能力的作用,導致學生實際編寫程序能力沒有得到很好的提高。第三,大部分普通高校的C語言考核是筆試的方式,這導致教師在教學中就會以考試為目的,考的內(nèi)容就講,不考的內(nèi)容就不講,考的內(nèi)容較多的就講得比較詳細,考的內(nèi)容較少的就講得比較淺顯,卻沒有把握住C語言學習的真正目的是讓學生學會編寫程序[3],而不是應付考試。

      2 循環(huán)結(jié)構(gòu)在C語言課程中的重要地位

      1996年,Bohra和Jacopini提出了程序設計的3種基本結(jié)構(gòu)是順序結(jié)構(gòu)程序設計、選擇結(jié)構(gòu)程序設計和循環(huán)結(jié)構(gòu)程序設計[4],并且已經(jīng)證明由這3種基本結(jié)構(gòu)組成的算法結(jié)構(gòu),可以解決任何不管是簡單還是復雜的問題。循環(huán)結(jié)構(gòu)程序設計是C程序設計中最重要和最難掌握的程序設計結(jié)構(gòu),每一個C程序設計都少不了循環(huán)結(jié)構(gòu)。C語言中提供了3種循環(huán)語句:while循環(huán)語句、do while循環(huán)語句和for循環(huán)語句,其中for循環(huán)語句是最難掌握的一種語句。在一般情況下,為了解決實際的程序設計問題,在條件確定給出循環(huán)次數(shù)時,首選的循環(huán)語句是for語句,因為for語句使用時簡潔明了、4要素清楚、結(jié)構(gòu)緊湊、靈活多變、執(zhí)行效率高,因此完全可以取代while循環(huán)語句和do while循環(huán)語句,但是在某些情況下,也可以采用while循環(huán)語句和do while循環(huán)語句解決問題。

      學生學習循環(huán)程序設計的問題主要是以下幾個方面:①循環(huán)結(jié)構(gòu)在哪些問題中可以使用;②哪些操作需要重復執(zhí)行;③這些操作在什么情況下需要重復執(zhí)行;④循環(huán)變量如何改變;⑤編寫的程序容易陷入無限循環(huán),既不報告數(shù)據(jù)有錯,又不結(jié)束循環(huán)。C語言程序設計課程的教學大綱中明確指出循環(huán)結(jié)構(gòu)的程序設計是C語言的重點內(nèi)容,也是難點內(nèi)容,為后續(xù)內(nèi)容的學習提供重要的基礎。對于初學者來說,教師在教學過程中采用好的教學方法,更有助于學生掌握C語言中循環(huán)結(jié)構(gòu)程序設計的方法。

      3 循環(huán)結(jié)構(gòu)的教學方法

      對于C語言程序設計這門課程中循環(huán)結(jié)構(gòu)的教學,根據(jù)知識點的特點,教師可以采用滲透式的漸進案例驅(qū)動教學法以及遷移引導式的方法,使學生掌握如何運用知識解決實際問題。該教學法分別吸收滲透式教學法[5]、漸進式教學法[6]和案例驅(qū)動教學法[7]的優(yōu)點,具有如下特點:①通過講解案例滲透基本概念,達到讓學生潛移默化吸收知識的目的;②案例驅(qū)動教學法的關鍵是選擇包含相應知識點的經(jīng)典案例,并且講解案例時進行分解,采用由易到難、由淺入深、循序漸進的教學法;③采用循序漸進的教學法講解案例,讓學生發(fā)現(xiàn)規(guī)律和總結(jié)規(guī)則,理解C語言語法規(guī)則的定義,教師對于理論知識再做一個總結(jié)歸納,使學生進一步提高認識,達到舉一反三應用的效果;④在講解完語法規(guī)則和案例后,采用遷移式的教學法,讓學生及時進行課堂練習,既鞏固所學知識,又提高解決實際問題的能力,達到學以致用的目的。

      4 循環(huán)結(jié)構(gòu)教學過程的設計與實踐

      4.1 案例設計原則

      案例的設計思路是厚基礎、抓重點、破難點,具體需要考慮以下幾方面:①所選的案例必須包含相關的知識點;②案例的選擇要難易程度適中,符合學生的學習水平,并且可以提高學生的學習興趣;③案例的選擇要具有典型性,可以達到舉一反三的目的;④案例的講解要采用循序漸進的教學方式,由易到難,由淺入深。

      案例的設計原則是讓學生理解循環(huán)結(jié)構(gòu)由4部分構(gòu)成,包括循環(huán)變量初始化、循環(huán)控制條件、循環(huán)控制部分和循環(huán)體語句,并且掌握各部分的功能以及作用。

      4.2 案例實施過程

      設計案例1:求1×2×n的值。

      案例分析:案例1是求1到n這n個數(shù)連乘的乘積。計算過程:首先定義一個變量product保存得到的乘積值,初始化為product=1,然后依次將1, 2n累乘到product中,最后得到product的值就是所求的結(jié)果。通過觀察發(fā)現(xiàn),每次計算乘積的時候,除了乘數(shù)不一樣,其他的過程都是一樣的。因此,在編寫程序時,可以設置一個變量i保存所乘的數(shù),i的值是以1遞增從1變化到n,每次執(zhí)行product=producti,就得到最后的乘積值。通過分析,給出程序如下:

      根據(jù)所給出的程序總結(jié)出for循環(huán)的一般形式和各部分的功能,進而把程序推廣到用while和do while表示的形式,程序分別如下:

      高性能在線分析計算現(xiàn)狀與協(xié)同計算關鍵技 術(shù)//郭 健,周 京 陽,李 強,Yousu CHEN,羅雅迪,郎燕生//(3):149

      while形式:

      do while形式:

      根據(jù)案例1的設計,進而讓學生理解循環(huán)結(jié)構(gòu)的特點,必須具備4要素且4要素可以靈活變化,出現(xiàn)在不同的地方;同時讓學生了解for循環(huán)語句、while循環(huán)語句和do while循環(huán)語句可以互相轉(zhuǎn)換。

      設計案例2:求1!+2!++100!的值。

      案例分析:案例2的講解過程中,首先讓學生觀察,發(fā)現(xiàn)它與案例1有相同的部分,借助于案例1的結(jié)論分別求出1!、2!100!,然后把1!加上2!,一直加到100!,就得到最后的結(jié)果,程序設計時用內(nèi)層循環(huán)求n!,外層循環(huán)求1!+2!++100!,這樣構(gòu)成雙重循環(huán),因此程序設計如下:

      對于上面的程序,分析出該算法的時間復雜度為O(n2),這個執(zhí)行效率是比較低的。對于所求解的問題,教師應進一步與學生探討,求下一個累加數(shù)的階乘是在前面一個階乘的基礎上,并且后面一個數(shù)是前面一個數(shù)以1遞增得到的,因此對于前面的程序改進后如下:

      對于上面的程序,其算法的時間復雜度為O(n),這個算法的效率就比較高,是線性的。這個過程可以培養(yǎng)學生算法分析的能力和提高其解決實際問題的能力。

      案例分析:案例3的講解中,借助于案例2中我們先求 sum=1!+2!++n!,當sum>10 000就結(jié)束循環(huán),這時要有跳出循環(huán)的語句,正好可以使用C語言中的break語句。當滿足條件sum>10 000為真(值為1),執(zhí)行break語句,跳出循環(huán),從而終止循環(huán)。程序設計如下:

      可以看出,for循環(huán)中沒有循環(huán)控制條件,缺少循環(huán)控制條件就會變成無限循環(huán),這時就要有跳出循環(huán)的語句,即break語句,否則程序?qū)o休止地執(zhí)行下去,形成死循環(huán)。這個問題的難點是怎么使循環(huán)體滿足條件后結(jié)束循環(huán)體,也是學生考慮問題的關鍵。

      4.3 案例總結(jié)歸納

      在講解完上述3個案例后,教師應及時對用到的知識和方法做出評價和總結(jié),并把相應的知識進行延伸,使學生形成完整的知識體系。對于案例1,點評學生完成的情況,總結(jié)出循環(huán)結(jié)構(gòu)的一般形式和各部分的功能,得出for循環(huán)語句的一般形式,然后把它推廣到其他形式的循環(huán)結(jié)構(gòu),如while和do while語句。對于案例2,教會學生分析復雜問題的方法,指導學生將復雜問題分解成簡單的小問題來解決,從而解決復雜的問題;同時在進行程序設計時,使學生潛移默化地理解算法的優(yōu)劣,懂得設計出更好程序的關鍵是設計執(zhí)行效率高的算法。對于案例3,學生掌握在進行程序設計時怎么避免設計成死循環(huán),當循環(huán)次數(shù)不確定時,找出可以跳出循環(huán)體的條件,然后用break語句。

      4.4 舉一反三

      在講解完語法規(guī)則和案例后,利用遷移式的學習法,讓學生進行課堂練習,進一步擴展思維,達到學以致用的目的。

      5 結(jié) 語

      循環(huán)結(jié)構(gòu)程序設計是C語言程序設計中的重點和難點內(nèi)容,滲透式的漸進案例驅(qū)動教學法的優(yōu)點是:①培養(yǎng)學生分析算法的能力;②提高學生解決實際問題的能力;③加強學生編寫程序的能力。綜上所述,漸進式的教學法培養(yǎng)學生具備扎實的基本知識、良好的邏輯思維能力和演繹能力;案例式的教學法提高學生的學習興趣,開發(fā)學生的智力,具有啟發(fā)性和實踐性;而滲透式的教學法培養(yǎng)學生獨立工作的能力,令學生具備較強的創(chuàng)造性和開拓性,這幾種方法結(jié)合在一起能夠發(fā)揮各自的優(yōu)勢。

      實踐表明,這樣的教學方法符合大一新生學習的特點,由易到難、由淺入深、逐步分解、環(huán)環(huán)相扣、潛移默化,并且也能很好地提高學生的學習興趣和積極主動性。學生只有自己發(fā)自內(nèi)心想學,才會積極主動地思考問題,才會達到更好的學習效果。

      參考文獻:

      [1]王平勤, 董付國, 原達. 在C語言教學中注重培養(yǎng)學生算法分析的能力[J].微型機與應用, 2007(增刊1): 211-213.

      [2]裘宗燕. 從問題到程序: 程序設計與C語言引論[M]. 2版. 北京: 機械工業(yè)出版社, 2011: 68-102.

      [3]李向陽, 方嬌莉. C語言程序設計(基于CDIO思想)[M]. 北京: 清華大學出版社, 2012: 62-87.

      [4]譚浩強. C程序設計[M]. 4版. 北京: 清華大學出版社, 2012: 24-26.

      [5]楊秀娟, 裴金萍, 劉惹梅. 滲透式教學法在工程制圖教學中的應用[J]. 中國電力教育, 2014(15): 82-83.

      [6]崔松健. 漸進式與項目式教學方法在“網(wǎng)頁設計技術(shù)”教學中的融合[J]. 電腦知識與技術(shù), 2010, 6(33): 9375-9376.

      [7]曹風華. 案例驅(qū)動教學法在“計算機應用基礎”課程中的應用[J]. 現(xiàn)代計算機, 2012(12): 41-43.

      猜你喜歡
      程序設計語句案例
      案例4 奔跑吧,少年!
      少先隊活動(2021年2期)2021-03-29 05:40:48
      重點:語句銜接
      基于Visual Studio Code的C語言程序設計實踐教學探索
      計算機教育(2020年5期)2020-07-24 08:52:56
      隨機變量分布及統(tǒng)計案例拔高卷
      從細節(jié)入手,談PLC程序設計技巧
      電子制作(2019年9期)2019-05-30 09:42:04
      精彩語句
      發(fā)生在你我身邊的那些治超案例
      中國公路(2017年7期)2017-07-24 13:56:38
      高職高專院校C語言程序設計教學改革探索
      一個模擬案例引發(fā)的多重思考
      PLC梯形圖程序設計技巧及應用
      沁水县| 盐池县| 香河县| 绍兴市| 大同县| 凌云县| 三原县| 宜州市| 成安县| 上杭县| 凉山| 博客| 宜城市| 东至县| 南充市| 电白县| 区。| 夹江县| 调兵山市| 从化市| 宜州市| 本溪| 来凤县| 威海市| 柘荣县| 抚松县| 沈丘县| 神木县| 岚皋县| 娄烦县| 阿鲁科尔沁旗| 鸡泽县| 安溪县| 图们市| 新竹市| 宜宾县| 江阴市| 东台市| 黑水县| 泰安市| 宝坻区|