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

?

關(guān)于《C程序設(shè)計(jì)》課程實(shí)驗(yàn)教學(xué)的探討

2012-04-29 07:25:07夏蕓
電腦知識(shí)與技術(shù) 2012年30期
關(guān)鍵詞:C程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)

摘要:《C程序設(shè)計(jì)》是一門程序設(shè)計(jì)基礎(chǔ)課程,在實(shí)驗(yàn)教學(xué)中強(qiáng)調(diào)學(xué)生能夠分析問題,并使用C語(yǔ)言編程解決問題。該文主要針對(duì)在實(shí)驗(yàn)教學(xué)中所遇到的一些問題進(jìn)行探討,在實(shí)際教學(xué)中取得了一定的效果。

關(guān)鍵詞:C程序設(shè)計(jì);實(shí)驗(yàn);教學(xué)

中圖分類號(hào):G424文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)30-7287-03

C程序設(shè)計(jì)課程在高校中一般多作為學(xué)習(xí)程序設(shè)計(jì)技術(shù)的入門課程,它是計(jì)算機(jī)專業(yè)和相關(guān)專業(yè)的必修課[1]。C語(yǔ)言可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。通過C程序設(shè)計(jì)這門課程的學(xué)習(xí)可以掌握程序設(shè)計(jì)的方法和技巧。作為一門程序設(shè)計(jì)課程,強(qiáng)調(diào)培養(yǎng)學(xué)生的程序設(shè)計(jì)的能力,因此實(shí)驗(yàn)課是該門課程教學(xué)中必不可少的組成部分。以下主要對(duì)C程序設(shè)計(jì)的實(shí)驗(yàn)課教學(xué)所遇到的一些情況做了一個(gè)總結(jié),并給出相應(yīng)的一些解決方法。

1 實(shí)驗(yàn)教學(xué)中所遇到的問題及其解決方法

1.1 培養(yǎng)學(xué)生解決問題的能力

程序設(shè)計(jì)的關(guān)鍵是解決問題的方法和步驟,因此程序設(shè)計(jì)的核心是算法[2]。在碰到一些問題時(shí),人們都會(huì)對(duì)這個(gè)問題有些想法,若是要利用計(jì)算機(jī)解決問題,則應(yīng)該將這些想法轉(zhuǎn)變成算法。在實(shí)驗(yàn)教學(xué)或課堂教學(xué)中應(yīng)該注重培養(yǎng)學(xué)生解決問題的能力。

計(jì)算機(jī)解決問題時(shí),主要解決思路就是IPO即輸入、處理和輸出。首先,需要分析問題有哪些是輸入的,經(jīng)過處理后需要輸出什么樣的輸出結(jié)果。再進(jìn)行分析,輸入的數(shù)據(jù)類型是什么,輸出的結(jié)果的數(shù)據(jù)類型是什么。最后,考慮問題處理時(shí)采用何種方法,并寫出問題的解決步驟。在實(shí)驗(yàn)過程中,鼓勵(lì)學(xué)生獨(dú)立思考,強(qiáng)調(diào)每個(gè)問題可能有不止一個(gè)解決方法。

例如:一個(gè)天平,砝碼分別為1g、2g、4g、8g、16g、32g、...、1024g,每個(gè)砝碼只有一個(gè),要稱重的物品放在天平的左側(cè),而砝碼只允許放在天平的右側(cè)。已知一個(gè)物品的重量,問如何稱重?試編程解決。

本文作者在實(shí)驗(yàn)課時(shí)布置這個(gè)題目時(shí),有的同學(xué)就覺得題目挺難的,當(dāng)時(shí),教師給予了一定的提示:首先,要求學(xué)生仔細(xì)分析題目的輸入和輸出要求是什么。經(jīng)過分析后,學(xué)生自行得出輸入數(shù)據(jù)的要求:輸入的是物體重量值,而且該重量值因?yàn)榭梢杂庙来a稱量出來(lái),該值應(yīng)該是一個(gè)整數(shù);為了便于檢查,在教師的要求下該題的輸出結(jié)果是:稱重時(shí)所使用的砝碼重量,砝碼的重量按從大到小輸出其值。再次,該問題的解決方法可能有多個(gè),方法一:讓學(xué)生假設(shè)如果現(xiàn)在有一個(gè)天平在眼前,應(yīng)該如何用砝碼稱重,且每種重量的砝碼只有1個(gè),砝碼重量是由大到小進(jìn)行試探稱重,還是砝碼重量是由小到大進(jìn)行試探稱重。學(xué)生由此會(huì)進(jìn)行相關(guān)思考,從而得出第一種算法:

1.2 注意一些運(yùn)算符的使用

程序設(shè)計(jì)過程中會(huì)使用到一些C語(yǔ)言的運(yùn)算符,但是在實(shí)驗(yàn)課時(shí)發(fā)現(xiàn)學(xué)生經(jīng)常會(huì)出現(xiàn)一些運(yùn)算符未能正確掌握,一般常見的錯(cuò)誤如下:

1)“==”的使用

“==”運(yùn)算符是關(guān)系運(yùn)算符,一般用在條件判斷。但是,在使用時(shí)經(jīng)常會(huì)將“==”寫作“=”。例如,判斷4個(gè)連續(xù)自然數(shù)乘積為3024,有的學(xué)生在編程時(shí)寫作:

if (x*(x+1)*(x+2)*(x+3)=3024)

對(duì)于這個(gè)問題,在編程時(shí)要求學(xué)生仔細(xì)想一想此處是判斷左式是否等于右式,還是將右式的值賦給左邊。若是判斷,則用運(yùn)算符“==”;若是賦值,則用運(yùn)算符“=”。

2)“%”的使用

“%”運(yùn)算符是算術(shù)運(yùn)算符,它的作用是求余,該運(yùn)算符要求操作數(shù)必須為整型數(shù)值。但是,在實(shí)驗(yàn)課時(shí),本文作者發(fā)現(xiàn)學(xué)生在編程中使用該運(yùn)算符時(shí)未曾考慮操作數(shù)的數(shù)據(jù)類型。對(duì)于這個(gè)問題,只能要求學(xué)生在使用該運(yùn)算符時(shí),必選檢查兩個(gè)操作數(shù)的數(shù)據(jù)類型是否為整型,若不是整型則可以強(qiáng)制轉(zhuǎn)換為整型。

3)“/”的使用

“/”運(yùn)算符是算術(shù)運(yùn)算符,它是除法運(yùn)算符,該運(yùn)算符有一個(gè)規(guī)定:若兩個(gè)操作數(shù)都為整數(shù),則商為整數(shù),否則商為實(shí)數(shù)。例如,華氏溫度轉(zhuǎn)換成攝氏溫度的公式為:C= 5/9*(F-32),學(xué)生在編程時(shí)寫作:C= 5/9*(F-32),但是不管輸入的F值為多少,輸出的結(jié)果C都為0。此類問題,在編程時(shí)需要注意商是要取整還是需要商的小數(shù)部分,若商要求為整數(shù),則操作數(shù)必須為整數(shù)。

1.3 注意調(diào)試技能的培養(yǎng)

程序設(shè)計(jì)過程中,可能會(huì)出現(xiàn)很多錯(cuò)誤,有的是語(yǔ)法錯(cuò)誤,有的可能是編程時(shí)考慮不夠全面,算法出現(xiàn)了一些問題。因此,在實(shí)驗(yàn)課時(shí)要求學(xué)生能自己使用一定的調(diào)試方法找到錯(cuò)誤并加以修正。至于常用的調(diào)試方法,諸如設(shè)置斷點(diǎn)、單步跟蹤、監(jiān)測(cè)變量以及在某些位置設(shè)置輸出語(yǔ)句等,這些方法在實(shí)驗(yàn)課時(shí)可以先演示,在學(xué)生遇到實(shí)際問題時(shí)讓其自己動(dòng)手,若學(xué)生還是無(wú)法解決,則教師可以進(jìn)行單獨(dú)輔導(dǎo),讓學(xué)生自行操作時(shí)予以發(fā)現(xiàn)問題并告知如何正確操作。

1.4 注意培養(yǎng)學(xué)生建立測(cè)試數(shù)據(jù)的能力

1) 建立測(cè)試數(shù)據(jù)完成程序的測(cè)試

在實(shí)驗(yàn)課時(shí),本文作者發(fā)現(xiàn)不少學(xué)生將程序調(diào)試成功后只輸入一組測(cè)試數(shù)據(jù)就認(rèn)為該程序沒有問題了,但是,實(shí)際上該程序可能并不正確。在實(shí)驗(yàn)課時(shí),要求學(xué)生對(duì)一個(gè)題目要輸入多組數(shù)據(jù),多組數(shù)據(jù)的設(shè)計(jì)一定要求能涵括題目的輸入數(shù)據(jù)的不同要求,特別需要考慮0作為測(cè)試數(shù)據(jù)。

例如,要求編制一個(gè)求方程a*x*x+b*x+c=0的根的程序。其中,a、b、c要求用戶輸入。

這個(gè)題目實(shí)際上不太難,在上實(shí)驗(yàn)課時(shí),很多同學(xué)就輸入了一組測(cè)試數(shù)據(jù):1 2 1。但是他們給出的程序很多都不對(duì)。那么,針對(duì)這個(gè)題目教師要求學(xué)生設(shè)想中學(xué)時(shí)碰到這個(gè)題目時(shí),會(huì)考慮delta=b*b-4*a*c的取值,現(xiàn)在做測(cè)試時(shí),仍然按該思路進(jìn)行考慮,因此,準(zhǔn)備了如下測(cè)試數(shù)據(jù):1 2 1;-1 2 4;1 2 4。教師在檢查作業(yè)時(shí),若發(fā)現(xiàn)學(xué)生只準(zhǔn)備了諸如上述這樣的測(cè)試數(shù)據(jù)時(shí),需要讓學(xué)生注意測(cè)試數(shù)據(jù)0的使用,例如:0 1 2;1 0 2;1 2 0。由于測(cè)試數(shù)據(jù)0的加入,會(huì)讓學(xué)生發(fā)現(xiàn)可能以前可能忽略的a為0的處理。

2) 先建立測(cè)試數(shù)據(jù)再完成程序的編碼

在實(shí)驗(yàn)課時(shí),本文作者發(fā)現(xiàn)有的題目有些學(xué)生感覺不知如何解決,遇到這種情況時(shí),本文作者一般建議學(xué)生先建立測(cè)試數(shù)據(jù),再依據(jù)現(xiàn)有的測(cè)試數(shù)據(jù)進(jìn)行編碼。當(dāng)然,有時(shí)學(xué)生可能無(wú)法獨(dú)自給出測(cè)試數(shù)據(jù),那么教師可以幫助學(xué)生建立測(cè)試數(shù)據(jù)。

例如,加密規(guī)則如下:

要求輸入若干組數(shù)據(jù),每組數(shù)據(jù)均具有如下的形式:

起始行 —— 一行,內(nèi)容為字符串 "START"

密文 —— 給出密文,密文不為空

結(jié)束行 —— 一行,內(nèi)容為字符串 "END"

在最后一組數(shù)據(jù)之后有一行,包括字符串 "ENDOFINPUT",表示輸入結(jié)束。

對(duì)每組數(shù)據(jù),都有一行輸出,給出密文對(duì)應(yīng)的明文。

在實(shí)驗(yàn)課時(shí),學(xué)生從題目描述中感覺無(wú)法理解輸入數(shù)據(jù)的含義,但是能設(shè)計(jì)出如何將密文轉(zhuǎn)換為明文,一般很多同學(xué)寫出如下的代碼:

但是有的同學(xué)就對(duì)輸入和輸出那塊不怎么清楚是什么意思,因此,教師可以給出3個(gè)測(cè)試數(shù)據(jù)文件如下表1所示。

3 總結(jié)

在這門課程的實(shí)驗(yàn)教學(xué)中,學(xué)生們會(huì)出現(xiàn)比較多的情況,需要教師多加引導(dǎo)和指引,以上只是就常見的一些情況做了個(gè)總結(jié),并給出了相應(yīng)的解決思想和方法,在實(shí)際教學(xué)中取得了一定的效果。但是,在實(shí)驗(yàn)教學(xué)中還有很多方面需要進(jìn)行相關(guān)的教學(xué)研究。

參考文獻(xiàn):

[1] 王曉霞.《C語(yǔ)言程序設(shè)計(jì)》教學(xué)策略與效應(yīng)[J].電腦知識(shí)與技術(shù),2012,8(26):6310-6312.

[2] 胡明,王紅梅.程序設(shè)計(jì)基礎(chǔ)——從問題到程序[M].北京:清華大學(xué)出版社,2011:4.

猜你喜歡
C程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)
記一次有趣的實(shí)驗(yàn)
微課讓高中數(shù)學(xué)教學(xué)更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
做個(gè)怪怪長(zhǎng)實(shí)驗(yàn)
“自我診斷表”在高中數(shù)學(xué)教學(xué)中的應(yīng)用
東方教育(2017年19期)2017-12-05 15:14:48
對(duì)外漢語(yǔ)教學(xué)中“想”和“要”的比較
NO與NO2相互轉(zhuǎn)化實(shí)驗(yàn)的改進(jìn)
C程序設(shè)計(jì)趣味教學(xué)初探
考試周刊(2016年56期)2016-08-01 19:11:24
C程序設(shè)計(jì)課堂趣味性教學(xué)初探
實(shí)踐十號(hào)上的19項(xiàng)實(shí)驗(yàn)
太空探索(2016年5期)2016-07-12 15:17:55
接軌全國(guó)等級(jí)考試,探討高校C語(yǔ)言課程教學(xué)改革
考試周刊(2016年29期)2016-05-28 08:37:52
城口县| 南阳市| 乐业县| 怀来县| 会理县| 上蔡县| 泽州县| 九寨沟县| 新昌县| 揭西县| 城固县| 方山县| 龙江县| 乌海市| 阜阳市| 象山县| 博兴县| 东平县| 长岛县| 丰县| 巴林右旗| 佳木斯市| 兴城市| 定日县| 琼结县| 休宁县| 吉木萨尔县| 长垣县| 裕民县| 和顺县| 陆丰市| 清涧县| 高邮市| 城步| 呼和浩特市| 洛阳市| 玛多县| 尼木县| 中江县| 宜都市| 张家界市|