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

?

淺談比較教學(xué)法在《C語言》教學(xué)中的運(yùn)用

2010-10-27 02:45:58唐小健
職業(yè)教育研究 2010年5期
關(guān)鍵詞:比較法C語言程序設(shè)計(jì)

唐小健

(韶關(guān)市中等職業(yè)技術(shù)學(xué)校 廣東 韶關(guān) 512028)

淺談比較教學(xué)法在《C語言》教學(xué)中的運(yùn)用

唐小健

(韶關(guān)市中等職業(yè)技術(shù)學(xué)校 廣東 韶關(guān) 512028)

C語言是系統(tǒng)描述語言,是一種通用的程序設(shè)計(jì)語言,具有許多突出的優(yōu)點(diǎn),因而在許多方面都得到了廣泛應(yīng)用。越來越多的程序員將C語言作為主要的編程工具;同時(shí),越來越多的人開始學(xué)習(xí)C語言。但由于C語言靈活,功能強(qiáng)大,也給初學(xué)者帶來了一定的學(xué)習(xí)難度。文章從教學(xué)法出發(fā),認(rèn)為教師在《C語言》授課過程中,應(yīng)根據(jù)不同的教學(xué)目的,針對(duì)不同的教學(xué)內(nèi)容,采用比較教學(xué)法,以獲得良好的教學(xué)效果。

比較教學(xué)法;C語言;程序設(shè)計(jì)

C語言使用起來方便靈活,具有現(xiàn)代化的數(shù)據(jù)結(jié)構(gòu)、結(jié)構(gòu)化的控制語句、程序設(shè)計(jì)自由度大等特點(diǎn)。但是,C語言中諸多的符號(hào)難以駕馭,尤其是函數(shù)、指針和結(jié)構(gòu)體等,學(xué)生學(xué)習(xí)起來相當(dāng)吃力。近幾年來,筆者不斷對(duì)C語言教學(xué)進(jìn)行探索和總結(jié),認(rèn)為在《C語言》課程教學(xué)中運(yùn)用比較教學(xué)法能有效提高教學(xué)質(zhì)量。

典型例題“接龍”比較法

學(xué)生學(xué)習(xí)程序設(shè)計(jì)語言,只有在掌握這門高級(jí)語言自身特點(diǎn)的基礎(chǔ)上,才能進(jìn)一步學(xué)習(xí)編程。教師在進(jìn)行教學(xué)設(shè)計(jì)時(shí),編排例題的順序很重要,應(yīng)依據(jù)知識(shí)的連貫性,由簡(jiǎn)單到復(fù)雜,逐層深入。例如,for循環(huán)語句這一節(jié)內(nèi)容,由于介紹完單層循環(huán),還要進(jìn)一步介紹循環(huán)的嵌套,筆者選擇了下面這道編程題為“龍頭”,然后分別橫向深入和縱向深入進(jìn)行“接龍”,將這一節(jié)的所有知識(shí)點(diǎn)都概括其中,使它們彼此聯(lián)系,相互掛鉤。

例題一(累加):求1+3+5+7+…+n(n是奇數(shù))。

(一)橫向深入

在程序設(shè)計(jì)語言的教學(xué)過程中,教師應(yīng)適時(shí)讓學(xué)生進(jìn)行編程訓(xùn)練。這不僅對(duì)學(xué)生理解和熟悉知識(shí)點(diǎn)有幫助,而且還能循序漸進(jìn)地培養(yǎng)學(xué)生樹立程序設(shè)計(jì)思想,提高分析問題和解決問題的能力。

講完例題一,將題目稍加改動(dòng)為例題二(求和):s=1+1/3+1/ 5+1/7+…+1/n(n是奇數(shù))。這道題的源程序,除了將例題一源程序的“s+=i;”語句改為“s+=1.0/n;”語句,還要注意將“int s;”語句改為“float s;”語句。另外,在輸出語句printf中參數(shù)s的格式控制符也應(yīng)作相應(yīng)的改動(dòng),由“%d”改為“%f”。

此后,再將例題一稍加改動(dòng)為例題三(求積):1*3*5*7*…*n(即求n的階層:n!,n是奇數(shù))。這道題,除了將例題一源程序的“s+=i;”語句改為“s*=i;”語句外,還要注意將“s=0;”語句改為“s=1;”語句。

(二)縱向深入

將例題一和例題二結(jié)合,就成為了例題四:求1!+3?。??。??。玭!(n是奇數(shù))。這道題具有承上啟下的作用,使教學(xué)內(nèi)容由單層循環(huán)引入循環(huán)嵌套。累乘由內(nèi)層循環(huán)來實(shí)現(xiàn),累加由外層循環(huán)來實(shí)現(xiàn)。

例題四源程序:main(){

借助本題的講解,可將有關(guān)循環(huán)嵌套的知識(shí)點(diǎn)著重介紹給學(xué)生。然后再將該題進(jìn)行橫向深入:求1?。?/3?。?/5?。?/7?。?/n! (n是奇數(shù))。讓學(xué)生自己動(dòng)手練習(xí)。

途徑比較法

在程序設(shè)計(jì)語言的授課過程中,任何一個(gè)問題的解決,都應(yīng)該盡量通過多種途徑來實(shí)現(xiàn)。途徑比較法,就是通過比較各種途徑(即解決問題的辦法),引導(dǎo)學(xué)生發(fā)散思維。哪種途徑效率最高,各種途徑分別適用于什么情況,引導(dǎo)學(xué)生養(yǎng)成周密考慮這些問題的習(xí)慣。

例如,在求解例題一時(shí),除了用以上方法之外,還可以有另外的解題方法。1到n(n是奇數(shù))之間的項(xiàng)數(shù)(即奇數(shù)個(gè)數(shù))可以用簡(jiǎn)單的算法求得。假設(shè)1到n之間的項(xiàng)數(shù)為m,實(shí)際上這是一個(gè)公差為2的等差數(shù)列,利用公差的通項(xiàng)公式,則有n=1+(m-1)*2,求得m=(n-1)/2+1,利用單層循環(huán)語句for就可以馬上求得結(jié)果。源程序如下:

顯然,這個(gè)源程序的執(zhí)行效率比較高。在講完用這種方法求解例題一后,筆者要求學(xué)生采用這種方法寫出例題二、三、四的源程序。絕大多數(shù)學(xué)生很快就正確地寫出來了,真正達(dá)到了學(xué)以致用、觸類旁通的教學(xué)目的。這樣的啟發(fā)引導(dǎo),讓學(xué)生在了解常規(guī)解法的基礎(chǔ)上又找到另一種行之有效的解題方法,使學(xué)生懂得應(yīng)該學(xué)會(huì)用不同的角度和方法來解題,并在解題過程中摸索出最簡(jiǎn)單有效的方法,從而加深對(duì)《C語言》相關(guān)知識(shí)的理解,進(jìn)一步增強(qiáng)學(xué)習(xí)《C語言》的興趣。

又如,在程序設(shè)計(jì)中經(jīng)常會(huì)遇到排序問題,而學(xué)生在編程時(shí)往往不能正確地完成,或是不能根據(jù)實(shí)際情況選擇最合理的途徑完成。針對(duì)這種情況,筆者將冒泡法排序、選擇法排序、插入法排序幾種解決排序問題的方法安排在一起介紹。對(duì)于排序的幾種方法,用具體的例子幫助學(xué)生理解:學(xué)校下周要舉行運(yùn)動(dòng)會(huì),要求每個(gè)班級(jí)的學(xué)生按照從高到矮的次序排成一列進(jìn)場(chǎng),班主任要事先將每個(gè)學(xué)生的身高寫在一張紙條上,排好后按照這個(gè)次序進(jìn)場(chǎng)。

若用冒泡法排序,就得將相鄰兩個(gè)學(xué)生的身高逐一進(jìn)行比較。這樣不斷地反復(fù)比較、交換,才能將身高按從高到矮排好序。若用選擇法排序,就必須從第一張紙條開始查,找出身高最高的紙條與第一張紙條互換位置,然后繼續(xù)從第二張紙條開始查找次身高的紙條,并與第二張紙條互換位置。若用插入法排序,就得先從排序前的那堆紙條(后面稱無序組)中拿第一張紙條擺在另一處 (后稱有序組),接著從無序組中拿第一張紙條(即原第二張紙條)和有序組中這張紙條比較,若原第二張紙條上的身高更高,則插放其前,否則,就插放其后。然后,再?gòu)臒o序組中拿原第三張紙條和這邊的兩張紙條上的身高進(jìn)行比較,若身高較高則插放其前,否則,就插放其后。

對(duì)這三種途徑進(jìn)行比較總結(jié)得出:插入法排序是一種簡(jiǎn)單、常用的排序方法,不適用于大量數(shù)據(jù)的排序;選擇法排序雖然比較直觀、簡(jiǎn)單,但要進(jìn)行很多比較,因而速度比較慢;冒泡法排序是通過不斷比較、交換,適用于簡(jiǎn)單數(shù)據(jù)的排序。

結(jié)果比較法

教學(xué)實(shí)踐表明,學(xué)生在編寫程序時(shí)往往會(huì)出現(xiàn)許多不同類型的錯(cuò)誤,特別是一些容易混淆的知識(shí)點(diǎn)和概念。如混淆使用各類循環(huán)語句,搞不清各類循環(huán)語句之間的區(qū)別與聯(lián)系;混淆使用單目運(yùn)算符++、--的前置運(yùn)算和后置運(yùn)算;混淆各種運(yùn)算符的優(yōu)先運(yùn)算順序;混淆break語句與continue語句的功能等。對(duì)于那些容易混淆的概念和容易用錯(cuò)的功能,可以使用結(jié)果比較法,即將正確的源程序和學(xué)生典型的錯(cuò)誤程序一起展示給學(xué)生,讓他們自己去比較異同,認(rèn)清是非,達(dá)到正確使用概念的目的。

“誘導(dǎo)”比較法

學(xué)生在編程求解一些應(yīng)用題時(shí),大多得不到正確結(jié)果,但并不能以此認(rèn)為學(xué)生不會(huì)編程或?qū)W生寫出的源程序一無是處。這些程序從整體框架來看是正確的,所使用的《C語言》語句和算法是正確的,只是在一些細(xì)節(jié)方面沒有處理好。如果因此而責(zé)備學(xué)生,很可能會(huì)產(chǎn)生一些負(fù)面影響,如使學(xué)生喪失自信心,興趣降低,產(chǎn)生自卑感等。這時(shí),可以采用“誘導(dǎo)”比較法,教師一步步引導(dǎo)學(xué)生自己發(fā)現(xiàn)錯(cuò)誤并改正,直至得到正確結(jié)果。這樣,學(xué)生會(huì)有一種成就感,對(duì)學(xué)好《C語言》的信心大增,學(xué)習(xí)的興趣和熱情也隨之高漲,可以達(dá)到事半功倍的效果。下面通過一道典型例題進(jìn)一步說明“誘導(dǎo)”比較法在《C語言》中的運(yùn)用。

例題五:求100到1000之間的各位數(shù)字之和為5的數(shù)有多少個(gè)?輸出這些滿足條件的數(shù)字(每行5個(gè))并對(duì)這些數(shù)字求和輸出。

筆者要求學(xué)生自己在上機(jī)前編寫好源程序,上機(jī)時(shí)輸入源程序,進(jìn)行編譯和調(diào)試,然后運(yùn)行可執(zhí)行程序,看是否能得到預(yù)期的結(jié)果。有的學(xué)生沒有得到正確的結(jié)果,一是程序運(yùn)行后沒有任何數(shù)據(jù)輸出,二是每行輸出按照默認(rèn)的格式輸出10個(gè)滿足條件的數(shù)字而不是題目所要求的5個(gè)數(shù)字,三是輸出滿足條件的數(shù)字個(gè)數(shù)和數(shù)字之和與實(shí)際不符。通過檢查他們的源程序,發(fā)現(xiàn)存在一些問題,歸納起來主要錯(cuò)誤有:循環(huán)語句for使用不當(dāng),不會(huì)靈活應(yīng)用算術(shù)運(yùn)算符號(hào),輸出函數(shù)printf使用不當(dāng)。既然已經(jīng)找到問題,筆者就“誘導(dǎo)”學(xué)生對(duì)錯(cuò)誤逐個(gè)進(jìn)行排查,最后得到正確的結(jié)果,其中一個(gè)學(xué)生的源程序是這樣的:

循序漸進(jìn)比較法

在學(xué)習(xí)《C語言》時(shí),關(guān)鍵要熟練掌握并靈活運(yùn)用好32個(gè)關(guān)鍵字。一次課記住這32個(gè)看似沒有任何規(guī)律的符號(hào)比較難,尤其是英語比較差的學(xué)生??梢愿鶕?jù)內(nèi)容的先后順序和功能給關(guān)鍵字分類,進(jìn)行比較。例如,short,long,和signed用于說明整數(shù)類型數(shù)據(jù);float和double用于說明實(shí)數(shù)類型;if和else可構(gòu)成選擇結(jié)構(gòu)的控制語句;在循環(huán)結(jié)構(gòu)控制語句中可用for,while和do關(guān)鍵字。每節(jié)課之前,教師可以先板書已學(xué)習(xí)過的關(guān)鍵字和本節(jié)課要講的新關(guān)鍵字。新關(guān)鍵字,要寫出其全名并注上對(duì)應(yīng)的漢語意思,幫助學(xué)生加深理解。久而久之,單調(diào)的關(guān)鍵字就變得容易接受并能被學(xué)生熟練掌握了。

總之,在《C語言》的授課過程中,根據(jù)不同的教學(xué)目的,針對(duì)不同的教學(xué)內(nèi)容,采用不同的方法進(jìn)行比較,可以收到良好的教學(xué)效果。

[1]于春凡.C語言及其高級(jí)編程技術(shù)[M].天津:南開大學(xué)出版社,1995.

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

[3]徐維祥.C語言程序設(shè)計(jì)教程[M].北京:高等教育出版社, 1998.

[4]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,1992.

G712

A

1672-5727(2010)05-0138-02

唐小?。?972—),男,江西安遠(yuǎn)人,韶關(guān)市中等職業(yè)技術(shù)學(xué)校教師,中學(xué)一級(jí)教師,主要從事計(jì)算機(jī)教學(xué)。

猜你喜歡
比較法C語言程序設(shè)計(jì)
比較法:立法的視角
法律方法(2020年2期)2020-11-16 01:23:00
基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
電子制作(2019年9期)2019-05-30 09:42:04
基于C語言的計(jì)算機(jī)軟件編程
電子制作(2018年16期)2018-09-26 03:27:08
比較法學(xué)習(xí)Co和Co2
高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
管窺“浮沉比較法”在脈診中的應(yīng)用
比較法在教學(xué)中的運(yùn)用
體育師友(2011年5期)2011-03-20 15:29:50
乡城县| 伊春市| 锦州市| 洮南市| 万全县| 工布江达县| 大姚县| 巢湖市| 六枝特区| 新巴尔虎右旗| 从江县| 黄骅市| 泰兴市| 伊春市| 讷河市| 达拉特旗| 通山县| 苍溪县| 通江县| 南召县| 古蔺县| 武陟县| 蛟河市| 班玛县| 南靖县| 延川县| 资兴市| 兴隆县| 盈江县| 兴化市| 错那县| 平和县| 金塔县| 临海市| 商南县| 霍山县| 始兴县| 恩施市| 蒙阴县| 罗源县| 镇江市|