国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

任務(wù)驅(qū)動(dòng)教學(xué)法在C語言教學(xué)中的應(yīng)用

2012-12-03 06:06:10李社蕾
中國(guó)教育技術(shù)裝備 2012年33期
關(guān)鍵詞:數(shù)組編程語法

李社蕾

三亞學(xué)院理工學(xué)院 海南三亞 572022

C語言是一門非常重要的計(jì)算機(jī)基礎(chǔ)課程,它既具有低級(jí)語言的特點(diǎn),又具有高級(jí)語言的優(yōu)點(diǎn)。而且C語言程序設(shè)計(jì)也是C++語言程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)等計(jì)算機(jī)專業(yè)課程的前導(dǎo)課程。現(xiàn)在許多高等院校將C語言作為理工科學(xué)生的第一門程序設(shè)計(jì)語言課程開設(shè)。C語言教學(xué)大都側(cè)重于語法學(xué)習(xí),教學(xué)的組織形式多是講解語法,通過例題驗(yàn)證語法,最終的目的是掌握語法知識(shí)點(diǎn)。這樣培養(yǎng)出來的學(xué)生只會(huì)讀程序,不會(huì)寫程序。

任何一種語言,都有一套定義語言的規(guī)則,這套規(guī)則稱為該語言的語法。學(xué)習(xí)語言時(shí),學(xué)習(xí)語法是其中較簡(jiǎn)單的內(nèi)容,而學(xué)習(xí)怎樣最充分地使用語言才是真正的任務(wù)。C語言教學(xué)的重點(diǎn),就應(yīng)該是培養(yǎng)學(xué)生的編程思想和運(yùn)用計(jì)算機(jī)解決實(shí)際問題的能力。

任務(wù)驅(qū)動(dòng)式教學(xué)法,是德國(guó)職業(yè)教育在20世紀(jì)80年代大力推行的一種“行為引導(dǎo)式的教學(xué)形式”。這種以任務(wù)為主體、以職業(yè)行為為引導(dǎo)的教學(xué)方法,學(xué)生在教師的幫助下,緊緊圍繞一個(gè)共同的任務(wù)活動(dòng)中心,在強(qiáng)烈的問題動(dòng)機(jī)的驅(qū)動(dòng)下,通過對(duì)學(xué)習(xí)資源的積極主動(dòng)應(yīng)用,進(jìn)行自主探索和互動(dòng)寫作的學(xué)習(xí),并在完成既定任務(wù)的同時(shí),自覺產(chǎn)生一種學(xué)習(xí)實(shí)踐活動(dòng),帶著真實(shí)的任務(wù)在探索中學(xué)習(xí)。運(yùn)用任務(wù)驅(qū)動(dòng)教學(xué)法教學(xué),任務(wù)的設(shè)計(jì)尤其重要,是任務(wù)驅(qū)動(dòng)教學(xué)法研究的重要內(nèi)容。本文研究任務(wù)驅(qū)動(dòng)教學(xué)法在C語言中的應(yīng)用,重點(diǎn)就是研究其中的任務(wù)設(shè)計(jì)。

C語言作為入門語言,對(duì)于首次接觸計(jì)算機(jī)語言的學(xué)生來說,一切都是陌生的。大部分學(xué)生會(huì)感覺到C語言這門課和以前學(xué)習(xí)的內(nèi)容脫節(jié)了,所有的概念都是新的,找不到一點(diǎn)兒自己熟悉的東西,感覺什么都不懂,對(duì)學(xué)好這門課沒有信心。為此,本文設(shè)計(jì)任務(wù)的出發(fā)點(diǎn)在于設(shè)計(jì)的任務(wù)盡量接近學(xué)生,甚至是學(xué)生熟悉的內(nèi)容,對(duì)不同的章節(jié)內(nèi)容設(shè)計(jì)不同的任務(wù)。

計(jì)算機(jī)有兩大功能:高速運(yùn)算和海量存儲(chǔ)。C語言的教學(xué)目的,就應(yīng)該是培養(yǎng)學(xué)生運(yùn)用計(jì)算機(jī)的這兩大優(yōu)勢(shì),通過C語言編程來解決實(shí)際問題的能力。

首先介紹計(jì)算機(jī)的工作過程。學(xué)生通過了解計(jì)算機(jī)的工作工程,可以幫助他們思考如何根據(jù)計(jì)算機(jī)的工作方式來控制計(jì)算機(jī),如何通過計(jì)算機(jī)語言控制計(jì)算機(jī)解決實(shí)際生活中的問題。“馮·諾依曼”結(jié)構(gòu)的計(jì)算機(jī)工作過程如圖1所示。

在了解計(jì)算機(jī)的工作過程的基礎(chǔ)上,提出具體的問題,尋求用C語言解決問題的方法和過程。根據(jù)解決問題類型的不同,將C語言內(nèi)容分為七大部分,對(duì)每一部分分別設(shè)計(jì)相應(yīng)的任務(wù),循序漸進(jìn),逐步培養(yǎng)學(xué)生的編程思想和編程能力。

圖1 “馮·諾依曼”結(jié)構(gòu)的工作原理圖

第一部分設(shè)計(jì)任務(wù)

任務(wù):設(shè)計(jì)一個(gè)最簡(jiǎn)單的任務(wù)來用C語言解決,如求表達(dá)式“3×4+9÷3”的值。

學(xué)生一看這個(gè)表達(dá)式,很興奮,這太簡(jiǎn)單了,小學(xué)生都會(huì)算,答案脫口而出;但當(dāng)數(shù)值變大時(shí),運(yùn)算起來就有些麻煩了。用C語言來解決這個(gè)問題,學(xué)生的興趣就被提起來了。首先介紹C語言的框架(聲明部分、函數(shù)定義部分),然后引入常量、變量、運(yùn)算符、表達(dá)式、數(shù)據(jù)類型、輸入輸出函數(shù)及順序程序結(jié)構(gòu)等相關(guān)語法內(nèi)容的講解,同時(shí)通過設(shè)計(jì)大量例題,利用這些語法知識(shí)點(diǎn)來編寫程序,分析解決問題的思路。

第二部分設(shè)計(jì)任務(wù)

任務(wù)1:已知下面分段函數(shù),輸入任意x的值,求y的值。用C語言編程實(shí)現(xiàn)。

看到這樣一個(gè)分段函數(shù),首先分析解決這類問題的思路,發(fā)現(xiàn)用前面的知識(shí)無法解決問題;然后引入選擇結(jié)構(gòu),引入if語句和關(guān)系運(yùn)算符、關(guān)系表達(dá)式、邏輯運(yùn)算符和邏輯表達(dá)式的講解;最后通過設(shè)計(jì)例子(比如:判斷一個(gè)三位數(shù)是不是水仙花數(shù),求三個(gè)數(shù)中的最大數(shù)或最小數(shù)等)進(jìn)行訓(xùn)練。

任務(wù)2:任意從鍵盤上輸入一個(gè)百分制成績(jī)score,按下列原則輸出其等級(jí):score≥90,等級(jí)為A;80≤score<90,等級(jí)為B;70≤score<80,等級(jí)為C;60≤score<70,等級(jí)為D;score<60,等級(jí)為E。

這個(gè)問題完全可以使用if…else…語句的嵌套來實(shí)現(xiàn),但顯然實(shí)現(xiàn)起來很羅嗦。為解決這樣的問題,引出switch語句的講解,然后列舉生活中能夠應(yīng)用switch結(jié)構(gòu)的實(shí)例進(jìn)行訓(xùn)練。

第三部分設(shè)計(jì)任務(wù)

任務(wù)1:求解“1+2+3+4+…+100”,“1*2*3*4+…*100”。

這樣的問題用前面學(xué)過的內(nèi)容解決,要寫兩個(gè)很長(zhǎng)的表達(dá)式,在這個(gè)問題的基礎(chǔ)上引出for、while和do…while的講解。通過設(shè)計(jì)大量的例子,如兔子問題、猴子吃桃問題等,反復(fù)訓(xùn)練。

任務(wù)2:求“1到100之間的素?cái)?shù)”。

編寫程序,并分析程序的執(zhí)行效率,分析編寫程序應(yīng)考慮的兩個(gè)重要因素:時(shí)間復(fù)雜度和空間復(fù)雜度。引出break和continue的使用。

第四部分設(shè)計(jì)任務(wù)

任務(wù):根據(jù)一個(gè)學(xué)生N門課的成績(jī),計(jì)算他的平均成績(jī);一個(gè)班50名學(xué)生,每位學(xué)生有N門課成績(jī),計(jì)算本班級(jí)某一門課的平均成績(jī);對(duì)學(xué)生成績(jī)從大到小排序。

用前面學(xué)過的內(nèi)容解決該問題,需要分別定義N個(gè)變量和50*N個(gè)變量,顯然不是解決問題的好方法。分析問題的特點(diǎn),引出對(duì)數(shù)組這一構(gòu)造數(shù)據(jù)類型的學(xué)習(xí)。引入解決排序問題的方法,通過冒泡排序和選擇排序等排序方法的介紹,掌握解決排序問題的方法。

圖2 C程序的結(jié)構(gòu)框架

第五部分設(shè)計(jì)任務(wù)

任務(wù)1:編程求解表達(dá)式“1!+2!+……+100!”的值。

任務(wù)2:設(shè)計(jì)程序求一個(gè)班學(xué)生的各科成績(jī)的平均分、最高分和最低分的差。

用前面學(xué)習(xí)的方法解決此問題,出現(xiàn)大量的重復(fù)代碼。為了精簡(jiǎn)程序,減小編程工作量,引出函數(shù)的概念,其中包括函數(shù)的定義、組成部分、函數(shù)的聲明、函數(shù)的調(diào)用、嵌套調(diào)用和遞歸調(diào)用等內(nèi)容,進(jìn)而引入模塊化設(shè)計(jì)的思想。

引出C程序的結(jié)構(gòu)框架,如圖2所示。學(xué)習(xí)C程序的結(jié)構(gòu)框架對(duì)于學(xué)習(xí)C語言非常重要,它使得學(xué)生對(duì)C語言有一個(gè)整體的認(rèn)識(shí)。C程序的結(jié)構(gòu)框架指出C語言是如何構(gòu)成的,以及怎樣圍繞問題構(gòu)成C程序。

第六部分設(shè)計(jì)任務(wù)

任務(wù):在程序里表示一個(gè)學(xué)生(學(xué)號(hào)、姓名、年齡、性別……),怎么表示?

char number[10];

char name[12];

unsigned int age;

char sex;

想表示多個(gè)人呢?定義多個(gè)數(shù)組?例如:一個(gè)班的學(xué)生,每個(gè)學(xué)生(學(xué)號(hào)、姓名、年齡和數(shù)學(xué)成績(jī)、英語成績(jī))打印指定學(xué)號(hào)或姓名的同學(xué)的各科成績(jī)。

分析這一問題,考慮用數(shù)組來解決,但數(shù)組中的數(shù)據(jù)有一個(gè)重要特點(diǎn),就是類型相同;現(xiàn)在學(xué)生的各項(xiàng)信息,類型不同,考慮定義多個(gè)數(shù)組;這樣各數(shù)組相互獨(dú)立,一個(gè)學(xué)生的信息被分散在多個(gè)數(shù)組中,使用起來非常不方便,從而引出結(jié)構(gòu)體和共用體來解決,同時(shí)引入順序查找和折半查找等方法。分析存儲(chǔ)方式,可以采用數(shù)組;利用數(shù)組存儲(chǔ)遇到一個(gè)問題,如果這個(gè)信息需要不斷更新,不斷地插入和刪除學(xué)生的情況下,就遇到問題,這樣就引入動(dòng)態(tài)存儲(chǔ),引入指針數(shù)據(jù)類型。分別使用順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)編寫出程序,體會(huì)兩種存儲(chǔ)方式各自的優(yōu)缺點(diǎn),根據(jù)具體問題的需要選擇存儲(chǔ)結(jié)構(gòu)。

第七部分設(shè)計(jì)任務(wù)

任務(wù):考慮一個(gè)分院或者一個(gè)學(xué)校的學(xué)生信息的存儲(chǔ)和處理問題。

這種情況下,因?yàn)樾畔⒘刻?,?nèi)存的容量有限,從而引出與文件操作相關(guān)內(nèi)容的講解,將信息存儲(chǔ)在硬盤上。

總之,C語言課程各部分的教學(xué)過程應(yīng)從任務(wù)設(shè)計(jì)入手,提出問題,分析怎么解決問題,進(jìn)而引出語法知識(shí)點(diǎn)。一方面通過合理的任務(wù)設(shè)計(jì),將C語言的語法知識(shí)點(diǎn)緊密聯(lián)系在一起,用貼近實(shí)踐的方式讓學(xué)生學(xué)會(huì)C語言理論知識(shí);另一方面,針對(duì)特定任務(wù)分析問題、提出思路、編程實(shí)現(xiàn)的過程,也正是培養(yǎng)學(xué)生的編程思想的過程。教學(xué)觀念和教學(xué)思想不斷改革,才能符合教學(xué)發(fā)展的要求,這樣培養(yǎng)的學(xué)生才能滿足社會(huì)的需要。在C語言的教學(xué)中雖存在很多問題,但也不斷涌現(xiàn)出更多更好的解決辦法,要用不斷創(chuàng)新的眼光去發(fā)現(xiàn)。

[1]盧素魁,唐文彥.從學(xué)習(xí)C語言看學(xué)習(xí)程序設(shè)計(jì)的方法[J].河北大學(xué)成人教育學(xué)院學(xué)報(bào),2000(6):53-54.

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

[3]陳奮.提高C語言教學(xué)質(zhì)量初探[J].廈門教育學(xué)院學(xué)報(bào),2005,8(2):71-72.

[4]項(xiàng)響琴.淺談程序設(shè)計(jì)語言C的教學(xué)改革[J].電腦知識(shí)與技術(shù),2008(11):1166-1168.

[5]納普爾.高等教育與終身學(xué)習(xí)[M].上海:華東師范大學(xué)出版社,2003.

猜你喜歡
數(shù)組編程語法
JAVA稀疏矩陣算法
編程,是一種態(tài)度
元征X-431實(shí)測(cè):奔馳發(fā)動(dòng)機(jī)編程
編程小能手
JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
紡織機(jī)上誕生的編程
跟蹤導(dǎo)練(二)4
KEYS
Keys
Book 5 Unit 1~Unit 3語法鞏固練習(xí)
楚雄市| 永仁县| 乾安县| 淮南市| 甘肃省| 台州市| 琼结县| 额尔古纳市| 临城县| 铁力市| 海口市| 宿州市| 岳池县| 中西区| 蓬莱市| 桑日县| 高陵县| 攀枝花市| 华宁县| 祁连县| 神池县| 礼泉县| 长宁区| 丰镇市| 蓬溪县| 义乌市| 卢龙县| 江安县| 阜宁县| 盐津县| 张家口市| 石屏县| 莱芜市| 和林格尔县| 长宁县| 和田县| 泗洪县| 光山县| 南安市| 门头沟区| 宕昌县|