• 
    

    
    

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

      基于計算思維的中職C語言程序設(shè)計教學研究

      2022-09-13 11:01:38王國兵
      關(guān)鍵詞:星號醉漢空格

      楊 偉,王國兵

      (1.諸暨技師學院,浙江 諸暨 311800;2.浙江國際海運職業(yè)技術(shù)學院 圖書館數(shù)字技術(shù)中心,浙江 舟山 316000)

      2006年,美國卡內(nèi)基梅隆大學的Jeannette M.Wing周以真教授系統(tǒng)地提出了計算思維的概念[1],并指出計算思維是運用計算機科學的基礎(chǔ)概念進行問題求解、系統(tǒng)設(shè)計以及人類行為理解等一系列思維活動。其后,陳國良院士、李廉教授、董榮勝教授對計算思維的概念進行了補充和發(fā)展。李廉教授指出計算思維的本質(zhì)是抽象和自動化,計算思維是現(xiàn)代社會每個人必須掌握的根本技能。

      一、計算思維的本質(zhì):抽象和自動化

      計算思維沒有嚴格的定義,國內(nèi)外學者對計算思維的理解各不相同。筆者采用李廉教授的觀點,即計算思維的本質(zhì)是抽象和自動化。抽象指的是使用C語言的符號系統(tǒng)對現(xiàn)實生活中的問題進行精確而嚴格的描述,自動化指求解問題按照一定的順序自動執(zhí)行。

      現(xiàn)實生活問題取值不變的數(shù)據(jù)抽象為常量,取值變化的量為變量,常量和變量都是C語言的操作對象。如果多個變量存在線性關(guān)系,可以用數(shù)組表示。中職C語言程序設(shè)計課程是程序類的入門課程,不涉及樹、堆、棧、表等復雜的數(shù)據(jù)結(jié)構(gòu)。教師可以結(jié)合中職一年級上學期的計算機應用基礎(chǔ)課程進行講解。馮·諾依曼計算機體系結(jié)構(gòu)包括輸入、輸出、存儲、運算器和控制器,其中存儲是計算機非常重要的概念,計算機本身具有緩存、內(nèi)存、磁盤等用于存儲的硬件設(shè)備。如果要在計算機中進行存儲,必須先分配空間并且指定空間的大小。定義好數(shù)據(jù)類型,便于分配一定大小的空間,也便于C語言根據(jù)數(shù)據(jù)類型進行運算。

      計算思維的自動化本質(zhì)內(nèi)涵比較豐富,但是對于中職學生而言,如果要C語言自動執(zhí)行一系列復雜的程序,必須借助if、switch等選擇結(jié)構(gòu)和for循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)是自動執(zhí)行的核心,相對于人而言,計算機擅長機械地進行重復、有規(guī)律的操作。計算機重復執(zhí)行指令千萬次只在一瞬間,對于人而言不可想象,更重要的是計算機不會犯錯且忠實的執(zhí)行指令,對指令不會有第二種理解。因此,循環(huán)結(jié)構(gòu)是中職學生理解計算思維自動化本質(zhì)的核心。即使不考慮計算思維的培養(yǎng),學生掌握好循環(huán)結(jié)構(gòu),對于定義數(shù)據(jù)結(jié)構(gòu)和構(gòu)造算法也是大有幫助的。

      二、借助形象思維,降低學生思維坡度

      理解抽象和自動化進而培養(yǎng)計算思維,對于中職學生來說是比較困難的。中職學生普遍數(shù)學基礎(chǔ)差,而邏輯思維源于數(shù)學,因而中職學生邏輯思維和抽象能力欠缺。抽象能力的培養(yǎng)沒有捷徑可走,需要反反復復、循序漸進地練習。教師在C語言教學過程中,借助形象教學,降低學生思維坡度,將學生的具體形象思維轉(zhuǎn)化為抽象邏輯思維。學生剛剛接觸到C語言,對數(shù)據(jù)結(jié)構(gòu)和算法很難理解,教師應盡量將算法用圖像、圖形、表格等形象化工具展示出來,再用中文講解操作步驟并將操作步驟寫出來,然后分析步驟之間的關(guān)系,找出規(guī)律。

      筆者以案例1闡述如何借助形象思維培養(yǎng)計算思維。該案例是循環(huán)語句的經(jīng)典例題[4]。

      案例1輸出圖案,如圖1所示。

      圖1 輸出效果圖

      由于初學者抽象思維能力欠缺,教師采用啟發(fā)式教學,引導學生用中文來描述問題。問題描述有三個基本要求:(1)全面,不能有遺漏;(2)準確,不能有歧義;(3)按照先后次序?qū)λ胁襟E進行描述。學生的描述各種各樣,一般典型的描述如下:

      第1步,居中輸出1個星號,回車換行;

      第2步,居中輸出3個星號,回車換行;

      第3步,居中輸出5個星號,回車換行;

      第4步,居中輸出7個星號,回車換行;

      第5步,居中輸出9個星號,回車換行。

      將求解問題逐步用C語言來表達,發(fā)現(xiàn)用printf()函數(shù)無法對輸出星號進行居中格式設(shè)置。教師引導和啟發(fā)學生思考,在辦公軟件Word、WPS中居中輸入星號,如果不進行字體格式和段落格式的居中操作,還有沒有其他辦法,部分學生會發(fā)現(xiàn)可以通過輸入空格的方式來解決題目居中輸出星號的要求,圖1表示的案例1求解問題可以轉(zhuǎn)化為圖2(用正方形表示空格)。于是將中文描述進一步完善,星號后面的空格不用輸出,printf(” ”)用回車換行操作即可,修改如下:

      第1步,輸出4個空格,1個星號,換行符;

      第2步,輸出3個空格,3個星號,換行符;

      第3步,輸出2個空格,5個星號,換行符;

      第4步,輸出1個空格,7個星號,換行符;

      第5步,輸出0個空格,9個星號,換行符。

      圖2 計算機實際輸出的效果圖

      教師引導學生分析這5個操作步驟,從行數(shù)、總行數(shù)、空格個數(shù)和星號個數(shù)之間的關(guān)系進行分析和歸納,發(fā)現(xiàn)存在如下規(guī)律:第一,操作步驟順序是1、2、3、4、5,行數(shù)是首項為1,公差為1的等差數(shù)列;第二,星號的數(shù)量是1、3、5、7、9,星號的數(shù)量是首項為1,公差為2的等差數(shù)列;第三,星號左邊空格的數(shù)量是4、3、2、1、0,空格的數(shù)量是首項為4,公差為-1的等差數(shù)列;第四,每步操作的空格的數(shù)量*2+星號的數(shù)量=9=操作步驟的總數(shù)*2-1;第五,星號左邊空格數(shù)量最多的是第1步操作,有4個,是操作步驟的總數(shù)-1;第六,星號最多的是最后一步操作,有9個,是操作步驟的總數(shù)*2-1。

      程序=數(shù)據(jù)結(jié)構(gòu)+算法,C語言程序設(shè)計是程序類基礎(chǔ)課,中職學生沒有學習過數(shù)據(jù)結(jié)構(gòu)這門課,所以不會涉及到復雜的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)只能是變量、常量和數(shù)組。算法就是對數(shù)據(jù)進行一系列操作,因此,構(gòu)造算法時要將數(shù)據(jù)聯(lián)系起來,分析數(shù)據(jù)與數(shù)據(jù)之間的相互關(guān)系,從而找到規(guī)律,再將規(guī)律轉(zhuǎn)化為算法。

      常量是對系統(tǒng)中取值不變的特征進行抽象,而變量是對系統(tǒng)中取值可以改變的特征進行抽象,案例1中輸出星號的個數(shù)、輸出空格的個數(shù)、操作步驟的順序、操作步驟的總數(shù)都是可以變化的量,所以用變量表示。

      定義變量K用來表示操作步驟順序,變量N表示操作步驟的總數(shù),將規(guī)律和變量K、N聯(lián)系起來,再對上述5條規(guī)律進行選擇和綜合,發(fā)現(xiàn)“每步操作步驟輸出星號的數(shù)量等于操作步驟順序K*2-1,輸出空格的數(shù)量等于操作步驟的總數(shù)減去操作步驟順序,即N-K。

      對中文描述進一步抽象,將輸出空格和星號的數(shù)量和行數(shù)、總行數(shù)關(guān)聯(lián)起來,可以用C語言轉(zhuǎn)化為下述語句。

      上述輸出空格、星號和換行符都是重復操作,用最基本的循環(huán)語句就可以實現(xiàn)。應用模塊化方法,先將復雜的問題進行抽象和分層,然后轉(zhuǎn)化為一個個簡單或者已知(用已掌握知識可以解決)的問題。語句1進一步轉(zhuǎn)化為語句2。

      三、分析步驟,抽象出規(guī)律

      案例1的求解步驟有限,如果操作步驟比較多,對操作步驟逐步進行描述就很難進行了。這就需要對所有的操作步驟進行分析和抽象,一般情況下描述前三個步驟或者后三個步驟,然后分析這些操作步驟之間的相互關(guān)系,發(fā)現(xiàn)規(guī)律并抽象和描述,然后轉(zhuǎn)化為一個個簡單或者已知(用已掌握知識可以解決)的問題。

      案例2:求和,1+2+3+……+100。

      對求解問題的前三個操作步驟逐步分析,總結(jié)任意步驟,即第N步驟的規(guī)律,描述如下:

      第一步,對1與2求和;

      第二步,對第一步求和結(jié)果與3求和;

      第三步,對第二步求和結(jié)果與4求和。

      定義變量K,K用來表述操作步驟的次序。函數(shù)F(K)的返回值表示第K步驟的操作結(jié)果。前述求解過程的操作步驟和K,F(xiàn)(K)聯(lián)系起來,描述如下:

      第一步,K=1,求和結(jié)果是F(0)+K+1,F(xiàn)(0)初始值只有加數(shù)1,所以F(0)=1。

      第二步,K=2,求和結(jié)果是F(1)+K+1;

      第三步,K=3,求和結(jié)果是F(2)+K+1。

      經(jīng)過分析前三個步驟,發(fā)現(xiàn)第N操作步驟和第N-1操作步驟有規(guī)律,由此得出結(jié)論,第N步驟,K=N,求和結(jié)果是F(N-1)+K+1。

      一個求解問題無論步驟有多少,只要步驟和步驟之間有聯(lián)系并可以歸納出規(guī)律,且這種規(guī)律可以用數(shù)學和計算機工具進行描述,那么這個求解問題就可以轉(zhuǎn)化為計算機問題。

      四、借助計算思維,解決實際問題

      案例3:醉漢在馬路上走多少步就會掉到路邊的溝里去。

      這種現(xiàn)實生活中的問題,首先要對各項事物進行定義,建立模型,構(gòu)想出解決問題的思路和步驟。馬路如何定義,醉漢步速如何定義,為了簡化模型,進行如下假設(shè);

      第一,醉漢走路距離長度一致,假設(shè)每步都為1;

      第二,馬路是直的,馬路的寬度為10,長度為20 000,用坐標表示醉漢在馬路上的位置;

      第三,醉漢走路方向無法確定,方向有很多種,不妨定義八種方向,以道路的方向為基準,45度為方向變化的幅度,分為東、東北、北、西北、西、西南、南、東南,一共八個方向。

      馬路和醉漢步速定義完成后,進一步抽象,假設(shè)醉漢站在馬路的中間位置開始走路,設(shè)置醉漢的坐標為X=0,Y=0。路邊的溝就是Y=5或者Y=-5。如果醉漢沒有掉到溝里,走到馬路的盡頭,則X=-10 000或者X=10 000。無論醉漢走到馬路盡頭或者掉到路邊的溝里,醉漢都不再走路了,對于計算機程序而言,就是走路的程序結(jié)束運行。

      醉漢走路描述如下:

      定義變量K=隨機函數(shù)();隨機函數(shù)課本上沒有提及,可以借助互聯(lián)網(wǎng)搜索隨機函數(shù)的相關(guān)代碼。走路的方向有八種,隨機函數(shù)就產(chǎn)生0、1、2、3、4、5、6、7數(shù)值。

      醉漢朝不同方向走一步的代碼如下:

      對醉漢走路程序運行多次求平均值,就可以算出案例3醉漢掉到路邊溝里的平均步數(shù),求平均值的程序本文不再贅敘。

      案例3比案例1、案例2的算法簡單,但是抽象的難度比較大。對于現(xiàn)實生活問題,要用計算的辦法求解,就要進行計算機建模與仿真。計算機建模,指借助于計算機建立數(shù)學模型、數(shù)值求解、定量研究某些現(xiàn)象或過程的研究方法。首先,在假設(shè)前提下,對現(xiàn)實生活中的復雜問題抽取比較典型的案例進行分析,復雜的現(xiàn)實生活問題就變成了可以計算的計算機問題。

      四、基于計算思維的教學方法

      經(jīng)過多年教學實踐,筆者總結(jié)出如圖3所示的C語言程序教學方法[2]。

      圖3 教學流程圖

      求解問題,盡量運用圖像、圖形、表格等具體的方式形象地展示出來,便于通過形象思維準確理解該問題。用中文對操作步驟進行描述,如果操作步驟比較多,可以對前三步或后三步的操作步驟進行描述,分析步驟與步驟之間、單個步驟與整體操作步驟之間的關(guān)系,總結(jié)出規(guī)律。對現(xiàn)實生活中的求解問題中涉及到的數(shù)據(jù)進行抽象,構(gòu)成合適的變量、常量、數(shù)組等數(shù)據(jù)結(jié)構(gòu)。將規(guī)律和數(shù)據(jù)結(jié)構(gòu)結(jié)合起來,總結(jié)出任意步驟的表示方式,最后構(gòu)造算法程序。

      總之,在程序設(shè)計課程教學中不能僅僅局限于程序教學本身,還要注重學生的自學能力、舉一反三的思維能力和運用創(chuàng)造性思維解決實際問題等能力的培養(yǎng)。

      猜你喜歡
      星號醉漢空格
      趣填成語
      空格填數(shù)
      你來補缺的數(shù)
      醉漢
      文苑(2019年20期)2019-11-16 08:52:18
      這里最亮
      改頭換面
      醉漢
      星號標注范例
      星號標注范例
      我也剛到
      龍門陣(2013年6期)2013-06-04 09:43:10
      米脂县| 怀远县| 板桥市| 大荔县| 江都市| 南澳县| 赞皇县| 栾川县| 天津市| 郑州市| 大丰市| 衡阳市| 海阳市| 武隆县| 玛沁县| 翁牛特旗| 莆田市| 麻城市| 定边县| 成武县| 大理市| 咸阳市| 英吉沙县| 曲水县| 都匀市| 蒲江县| 江北区| 中方县| 安龙县| 梁平县| 怀安县| 米林县| 始兴县| 冕宁县| 衡南县| 雅江县| 洮南市| 社会| 定结县| 连云港市| 平罗县|