• 
    

    
    

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

      ?

      C++教學(xué)中的知識(shí)點(diǎn)邏輯關(guān)系探討

      2016-12-21 00:59董鑫正單緬傅曉陽
      計(jì)算機(jī)教育 2016年9期
      關(guān)鍵詞:變量函數(shù)知識(shí)點(diǎn)

      董鑫正+單緬+傅曉陽

      摘要:針對(duì)c++教學(xué)中知識(shí)點(diǎn)較多并且零散的問題,通過分析知識(shí)點(diǎn)之間的邏輯關(guān)系,提出以函數(shù)、變量、流程控制3個(gè)核心知識(shí)點(diǎn)為中心的橫向分類和縱向分層的知識(shí)點(diǎn)結(jié)構(gòu)圖。

      關(guān)鍵詞:c++;知識(shí)點(diǎn);函數(shù);變量;流程控制

      對(duì)于大部分學(xué)生來講,從編程零基礎(chǔ)到掌握程序設(shè)計(jì)的基本思想和方法,需要轉(zhuǎn)變思維方式,從新的角度去認(rèn)識(shí)和分析問題,有一定的困難要克服。c++課程本身包含很多零散的知識(shí)點(diǎn),且有較強(qiáng)的實(shí)踐性,學(xué)習(xí)起來也有一定的困難。承擔(dān)學(xué)生與課程之間橋梁角色的教師,如何根據(jù)學(xué)生的認(rèn)知特點(diǎn)和課程中知識(shí)點(diǎn)之間的固有聯(lián)系,有效組織知識(shí)結(jié)構(gòu),合理安排教學(xué)計(jì)劃,以達(dá)到理想的教學(xué)效果,是一個(gè)值得探討的問題。

      1.知識(shí)點(diǎn)的聚類

      針對(duì)c++語言包含很多零散知識(shí)點(diǎn)的問題,通過知識(shí)點(diǎn)之間的聯(lián)系,采用層次聚類的思想來構(gòu)建知識(shí)點(diǎn)的樹狀圖,發(fā)現(xiàn)核心知識(shí)點(diǎn),實(shí)現(xiàn)知識(shí)點(diǎn)“由多到少”。樹狀圖共有四層,首層是表示c++全部知識(shí)點(diǎn)的根結(jié)點(diǎn),第二層是核心知識(shí)點(diǎn),第三層是主題知識(shí)點(diǎn),對(duì)應(yīng)教材上的章,第四層是基本知識(shí)點(diǎn),對(duì)應(yīng)每一章包含的多個(gè)具體的知識(shí)點(diǎn)。常見的c++教材上關(guān)于章節(jié)的安排,可以看作是第四層到第三層聚類。本文的重點(diǎn)在于第三層到第二層的聚類,從而發(fā)現(xiàn)核心知識(shí)點(diǎn),幫助學(xué)生抓住重點(diǎn),掌握本質(zhì)。

      1.1主題知識(shí)點(diǎn)

      c++教材上章節(jié)的劃分實(shí)際上都屬于基本知識(shí)點(diǎn)到主題知識(shí)點(diǎn)的聚類。這里參考文獻(xiàn)的章節(jié)劃分,根據(jù)實(shí)際的教學(xué)安排有部分調(diào)整,整理后的主題知識(shí)點(diǎn)見表1。

      1.2核心知識(shí)點(diǎn)

      通過教學(xué)實(shí)踐的總結(jié)以及對(duì)主題知識(shí)點(diǎn)和基本知識(shí)點(diǎn)的進(jìn)一步分析發(fā)現(xiàn),所有的內(nèi)容圍繞3個(gè)核心的知識(shí)點(diǎn)展開,即程序設(shè)計(jì)的基本概念:函數(shù)、變量、流程控制。把表1中的主題知識(shí)點(diǎn)按這3個(gè)核心知識(shí)點(diǎn)進(jìn)行劃分,結(jié)果如圖1(橫向來看)所示。

      函數(shù)是c++中的基本概念,也是c++程序的基本組成部分。圍繞函數(shù)展開的主題知識(shí)點(diǎn)有主函數(shù)、自定義函數(shù)、多文件結(jié)構(gòu)、類、構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、靜態(tài)成員函數(shù)、運(yùn)算符重載、模板。主要內(nèi)容包含主函數(shù)、自定義函數(shù)、類成員函數(shù)、模板函數(shù)等。

      變量也是C++中的基本概念,變量包含四要素:名稱、類型、值、地址。相關(guān)的概念有常量和字面量:常量也包含四要素,但值不能修改;字面量包含三要素,類型、值和地址,沒有名稱,直接用值,且值不能修改。類型是變量的四要素之一,與類型相關(guān)的章節(jié)都屬于變量相關(guān)的內(nèi)容。圍繞變量展開的主題知識(shí)點(diǎn)有:基本類型和變量、表達(dá)式、多文件結(jié)構(gòu)、數(shù)組、指針、引用、結(jié)構(gòu)、類、繼承、模板。主要內(nèi)容包含基本類型、構(gòu)造類型、類類型、類模板等。

      函數(shù)和變量包含的主題知識(shí)點(diǎn)中有3個(gè)是重疊的:多文件結(jié)構(gòu)、類、模板,這3個(gè)主題知識(shí)點(diǎn)即涉及函數(shù)部分,也涉及變量部分。

      流程控制相對(duì)簡單,體現(xiàn)在兩個(gè)方面:一是內(nèi)容較少,只包含兩個(gè)主題知識(shí)點(diǎn);二是比較獨(dú)立,與另外兩個(gè)核心知識(shí)點(diǎn)之間沒有相互交叉。主要內(nèi)容是流程控制,即順序、分支和循環(huán)3種流程控制結(jié)構(gòu)。

      2.知識(shí)點(diǎn)的展開

      知識(shí)點(diǎn)的聚類從橫向上對(duì)知識(shí)點(diǎn)進(jìn)行分類,實(shí)現(xiàn)了知識(shí)點(diǎn)“由多到少”的目標(biāo);而知識(shí)點(diǎn)的展開則基于學(xué)生的認(rèn)知規(guī)律,從縱向上對(duì)知識(shí)點(diǎn)由淺人深,以盡量減少學(xué)生學(xué)習(xí)時(shí)遇到的困難。這里的基本原則是以問題為驅(qū)動(dòng),逐步完善解決問題的方法,一方面我們要解決的問題或示例從簡單到復(fù)雜;另一方面,我們采用的解決問題的方法根據(jù)問題的規(guī)模和類型逐步擴(kuò)展。這里方法的展開也以函數(shù)、變量、流程控制3個(gè)核心概念為基礎(chǔ),分層遞進(jìn)。從縱向來看,可分為單函數(shù)和基本類型、多函數(shù)和構(gòu)造類型、面向?qū)ο?個(gè)層次,如圖1(縱向來看)所示。

      3個(gè)層次的遞進(jìn)依據(jù)兩條線索,一是函數(shù),二是變量,即3個(gè)核心知識(shí)點(diǎn)的前兩個(gè)。函數(shù)從單個(gè)確定函數(shù)原型的主函數(shù)到多個(gè)用戶自定義函數(shù)。變量的擴(kuò)展主要體現(xiàn)在數(shù)據(jù)類型,如圖2所示,為了突出重點(diǎn),省略了枚舉類型、聯(lián)合類型、空類型等。從基本類型到構(gòu)造類型,再到類類型,前兩個(gè)層次中變量和函數(shù)是分離的,在第3層類類型中,變量和函數(shù)統(tǒng)一到類的概念里,成為成員變量和成員函數(shù)。

      2.1單函數(shù)和基本類型

      單函數(shù)即只有一個(gè)主函數(shù)。最簡單的C++程序由一個(gè)主函數(shù)組成,主函數(shù)是c++程序的人口,每個(gè)程序有且僅有一個(gè)主函數(shù)。函數(shù)是C++程序的基本組成單元,從而引入了函數(shù)的概念。

      變量包含名稱、類型、值、地址四要素,定義變量之前先要有類型,c++中最簡單的類型是基本類型,基本類型包括整型、字符型、浮點(diǎn)型和布爾型。運(yùn)算符主要包含算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符,使用運(yùn)算符把變量連接起來組成表達(dá)式,表達(dá)式可以作為更復(fù)雜的語句的子表達(dá)式,或者加上分號(hào)成為獨(dú)立的語句。

      流程控制包含順序、分支、循環(huán)3種結(jié)構(gòu),分支包含if和switch兩種形式,循環(huán)包含while、do....while、for 3種形式。

      掌握了主函數(shù)、變量和基本類型、流程控制等基本概念,便掌握程序設(shè)計(jì)的基礎(chǔ),可以用來解決基本的數(shù)學(xué)計(jì)算問題,如累加求和、判斷素?cái)?shù)等問題。

      2.2多函數(shù)和構(gòu)造類型

      對(duì)于稍微復(fù)雜一些的問題,只有一個(gè)主函數(shù)已經(jīng)不能很好地解決問題,這時(shí)就需要引入自定義函數(shù)。自定義函數(shù)主要包含兩方面的內(nèi)容,一是函數(shù)的定義、聲明與調(diào)用;二是幾種特殊的函數(shù)形式,如遞歸、內(nèi)聯(lián)、重載、默認(rèn)參數(shù)函數(shù)等。當(dāng)程序中的函數(shù)很多時(shí),為了方便組織管理,會(huì)放在多個(gè)文件中,并提供相應(yīng)的頭文件,便有了多文件結(jié)構(gòu)。對(duì)于變量,也需要考慮在多文件結(jié)構(gòu)下的情況,主要是針對(duì)全局變量。單函數(shù)、單文件的程序主要用于實(shí)驗(yàn)驗(yàn)證,多函數(shù)、多文件結(jié)構(gòu)才是工程項(xiàng)目中的一般形式。

      變量方面,在基本類型上作進(jìn)一步的擴(kuò)展,引入了4種新的構(gòu)造類型:數(shù)組、指針、引用和結(jié)構(gòu)體。構(gòu)造類型實(shí)際上提供了新類型的構(gòu)造方法,從而提供在4種基本類型的基礎(chǔ)上構(gòu)造任意組合類型的可能。這里的重點(diǎn)是如何用構(gòu)造類型定義變量及該類型變量的特性。對(duì)于結(jié)構(gòu)體類型,除了定義變量,還需要掌握定義新的結(jié)構(gòu)體類型的方法。雖然C++的關(guān)鍵字struct和class有基本一致的功能(除了默認(rèn)的成員訪問權(quán)限不同),本文中的struct僅用于定義C語言樣式的結(jié)構(gòu)體。

      自定義函數(shù)和構(gòu)造類型的引入,為我們解決復(fù)雜問題提供了基本的表達(dá)方法。尤其是結(jié)構(gòu)體變量的引入,以基本類型為基礎(chǔ),通過多次嵌套組合成合適的構(gòu)造類型,從而使表達(dá)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)成為可能。

      說到函數(shù)與變量的關(guān)系,重點(diǎn)在于不同類型的變量作為函數(shù)參數(shù)所表現(xiàn)的差異。調(diào)用函數(shù)時(shí)使用的參數(shù)叫實(shí)參,定義函數(shù)時(shí)的參數(shù)叫形參,實(shí)參向形參的傳遞方式是值傳遞,即實(shí)參的值單向傳遞給形參。當(dāng)參數(shù)類型是指針或引用時(shí),在函數(shù)中對(duì)形參所指向變量的修改會(huì)影響到實(shí)參所指向的變量,數(shù)組作為函數(shù)參數(shù)時(shí)按指針類型處理。當(dāng)參數(shù)類型非指針或引用時(shí),在函數(shù)中對(duì)形參的修改則不會(huì)影響實(shí)參變量。

      2.3面向?qū)ο?/p>

      以上兩個(gè)層次屬于面向過程的內(nèi)容,第三個(gè)層次是面向?qū)ο蟮膬?nèi)容。對(duì)于大型的工程項(xiàng)目,面向過程的方法顯得力不從心,而面向?qū)ο蠓椒▌t提供了更高程度的抽象,以便于對(duì)問題的描述和工程的組織。

      我們?nèi)匀粡暮瘮?shù)和變量的角度來理解面向?qū)ο?。前面提到過函數(shù)和變量的關(guān)系,一方面變量可以作為函數(shù)參數(shù)或返回值,另一方面變量可以作為變量的成員(通過使用結(jié)構(gòu)體)。以此為基礎(chǔ),現(xiàn)在提出兩個(gè)問題引導(dǎo)學(xué)生:函數(shù)可以作為函數(shù)參數(shù)或返回值嗎?函數(shù)可以作為變量的成員嗎?對(duì)于第一個(gè)問題,可以接受函數(shù)作為參數(shù)或返回函數(shù)的函數(shù)稱為高階函數(shù),c++并不支持,但c++中通過函數(shù)指針可以實(shí)現(xiàn)以函數(shù)作為另一個(gè)函數(shù)參數(shù),只是并不作為初學(xué)者的重點(diǎn)內(nèi)容。對(duì)于第二個(gè)問題,函數(shù)可以作為變量的成員,這樣變量便可以擁有數(shù)據(jù)成員和函數(shù)成員,這便是面向?qū)ο蟮臉?gòu)造基礎(chǔ)。

      類概念的引入,便是在結(jié)構(gòu)體的基礎(chǔ)之上增加了對(duì)函數(shù)成員的支持。這樣,對(duì)類的認(rèn)識(shí),可以從成員變量、成員函數(shù)的角度來理解。當(dāng)然,也有特殊的成員函數(shù),比如構(gòu)造函數(shù)、析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù),都是新的概念,需要與成員變量結(jié)合起來理解。類的訪問控制實(shí)現(xiàn)了對(duì)封裝性的支持,靜態(tài)成員使成員函數(shù)或成員數(shù)據(jù)能夠不依賴于對(duì)象而獨(dú)立存在,友元使類的非成員函數(shù)能訪問類的非公有成員以提高效率。類的繼承提供了高效的代碼復(fù)用機(jī)制,并通過虛函數(shù)實(shí)現(xiàn)了對(duì)多態(tài)性的支持。運(yùn)算符重載是特殊的函數(shù)重載,主要是為了提高可讀性。模板是泛型編程技術(shù),實(shí)現(xiàn)了類型的參數(shù)化。

      異常處理屬于流程控制,使我們能夠?qū)栴}的檢測(cè)和問題的解決分離,這樣程序的問題檢測(cè)部分可以不必了解如何處理問題。

      3.結(jié)語

      根據(jù)C++的3個(gè)核心知識(shí)點(diǎn)即函數(shù)、變量、流程控制,橫向上進(jìn)行分類以求由繁到簡,縱向進(jìn)行分層以求由淺入深,是引導(dǎo)學(xué)生初步掌握包含較多零散知識(shí)點(diǎn)的程序設(shè)計(jì)課程的一種有效方法。在教學(xué)實(shí)踐中,以文中提出的知識(shí)點(diǎn)結(jié)構(gòu)圖為參考,強(qiáng)調(diào)初學(xué)者要抓住重點(diǎn)、夯實(shí)基礎(chǔ),建立新的知識(shí)點(diǎn)與核心知識(shí)點(diǎn)的聯(lián)系,使整體的教學(xué)效果有了一定的提升。

      猜你喜歡
      變量函數(shù)知識(shí)點(diǎn)
      關(guān)于口罩 這10大知識(shí)點(diǎn)你必須知道
      知識(shí)點(diǎn)自測(cè)
      關(guān)于函數(shù)的一些補(bǔ)充知識(shí)
      “二次根式”復(fù)習(xí)精講
      科學(xué)分析,高效決策
      高中數(shù)學(xué)中二次函數(shù)應(yīng)用舉隅オ
      無獨(dú)有偶 曲徑通幽
      分離變量法:常見的通性通法
      不可忽視變量的離散與連續(xù)
      輕松把握變量之間的關(guān)系
      巴里| 昌平区| 鹿邑县| 抚远县| 综艺| 绥宁县| 陈巴尔虎旗| 西贡区| 辰溪县| 哈巴河县| 乐安县| 龙里县| 辽宁省| 阿荣旗| 襄垣县| 台中市| 儋州市| 钟山县| 肃北| 南城县| 郸城县| 博罗县| 楚雄市| 庆阳市| 托克逊县| 绍兴市| 东宁县| 灵武市| 子长县| 赞皇县| 道真| 稻城县| 吴川市| 永丰县| 来安县| 漳浦县| 苏州市| 德令哈市| 稻城县| 正蓝旗| 四会市|