999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

深入挖掘《C語言程序設計》課程教材 加強學生的教育工作

2013-04-12 00:00:00劉鵬梁雙鳳甘小艇
教育教學論壇 2013年46期

摘要:本文從三個例子入手,說明在《C語言程序設計》教與學的過程中,可根據實際問題的情況,不斷挖掘教材中的程序里的育人素材,在教書的同時也加強育人工作。

關鍵字:程序設計;育人素材;育人工作

中圖分類號:TP312 文獻標志碼:A 文章編號:1674-9324(2013)46-0091-03

C語言是一種國際上廣泛流行的計算機高級語言,具有用途廣泛、功能強大、使用靈活的特點。數學系在2011版人才培養方案中將《C語言程序設計》課程列為數學系共同學科課程,總課時為90,包括36課時的實踐操作。目前使用的教材為譚浩強著,清華大學出版社2010年7月出版的《C程序設計(第四版)》。該課程的教學除了與程序代碼、計算機打交道,在教學中,教師可以深入挖掘教材育人素材,加強學生的思想道德教育工作。

一、做人要有“底線”

結構化程序設計的思想是自頂向下,逐步細化,模塊化設計,結構化編碼。核心的理念就是層次。良好的代碼要有層次感,先做好“頂層設計”,然后一步一步細化,這樣做可使編碼工作有條不紊地進行。在教材第291頁有這樣的題目[1]:有n個人圍成一圈,順序排號。從第1個人開始報數(從1到3報數),凡報到3的人退出圈子,問最后留下的是原來第幾號的那位。文獻[2]在第104頁給出如下的參考解答[2]:

這段代碼從頭到尾只有一個main()函數,根本就不符合結構化程序設計的思想要求。把所有的代碼都堆在main()函數中,就如同在一個硬盤中存放了很多文件,卻沒有使用任何文件夾來進行管理一樣;也如同買了一套房子,并沒有用墻把房子分隔成臥室、客廳、廚房、餐廳、衛生間,而是將一切生活用品都堆放在房子的地上,吃喝拉撒都在一個大房間里進行。一個源程序由若干個函數組成,猶如用墻把房子分隔成一個個房間一樣。模塊化設計就是把一個大任務分為若干個相對簡單的子任務,每個子任務用函數來實現。解決一個問題首先要從大處著手,做好“頂層設計”,站在高處來看,解決這個問題需要四個步驟[3]:輸入人數;數組初始化;“從1到3報數”n-1次;輸出最后剩下的那個人的編號。而每一步都可以簡單地用函數或基本的控制語句來實現。在向下一層展開之前應檢查本層設計是否正確,只有上一層設計是正確的才能向下細化。良好的程序設計應該是把復雜的問題分解為簡單的問題,然后各個擊破,一件一件有條不紊地完成。“自頂向下,逐步求精”的層次理念是每個編程人時刻都要堅持的,就像做人要守好自己的“底線”一樣,不能輕易發生動搖。

二、做人要誠實守信

誠實守信是做人的一個基本原則。文獻[4]中形象地給出了一個“狼來了的故事”。一個人第一次撒謊,他的可信度會由原來的0.8下降為0.444,再撒謊一次,可信度就降為0.138了[4]。在教材第168頁有這樣的題目[1]:用篩法求100之內的素數。文獻[2]在第54頁給出如下的參考解答[2]:

篩法是公元前250年由古希臘數學家埃拉托斯特尼(Eratosthenes)提出的一種求出不超過自然數n范圍內所有素數的一種簡單的古老算法[3]。方法是:首先寫出1~n的全部自然數,然后逐個判斷它們是否是素數,找出一個非素數,就把它挖掉,最后剩下的就是素數。具體做法是:1.先將1(不是素數)挖掉;2.找到第一個素數2,把2的倍數挖掉;3.找到第二個素數3,把3的倍數挖掉,這個過程一直進行到除數后面的數已全部被挖掉為止。上面的算法可表示為[2]:①挖去1;②用下一個未被挖去的數p除p后面的各數,把p的倍數挖掉;③檢查p是否小于等于■的整數部分,如果是,則返回(2)繼續執行,否則,就結束;4.剩下的數就是素數。例如n=9時:1 2 3 4 5 6 7 8 9;首先挖掉1:① 2 3 4 5 6 7 8 9;然后挖掉2的倍數4,6,8:① 2 3 ④ 5 ⑥ 7 ⑧ 9;最后挖掉3的倍數9:① 2 3 ④ 5 ⑥ 7 ⑧ ⑨。由于3<=■成立,因此剩下的數:2,3,5,7就是素數。如果只用小于■的素數去“篩”這張表,則得到的結果是不正確的。因此,該程序中“i

for (i=2;i

?搖for (j=i+1;j<=100;j++)

?搖?搖?搖{if(a[i]!=0 a[j]!=0)

?搖?搖?搖if (a[j]%a[i]==0)

?搖?搖?搖?搖?搖a[j]=0;

?搖?搖?搖}

所用的方法根本就不是篩法!因為篩法的核心思想是:每確認一個素數就“篩”去這個素數的倍數。而“篩”去該素數的倍數既不需要通過“j++”對數組中該數后面的數逐個檢查,也不需要進行求余運算(a[j]%a[i])。因為,只要根據下標就可以判斷出某數是否是某個素數的倍數。例如,若a[2]的值為2是一個素數,那么a[2+a2]],a[2+a[2]+a[2]],…就一定是2的倍數。所以,即使按照原來不合理的數據結構(int a[101];),這段代碼也應該這樣寫:

for (i=2;i*i<=100;i++)

?搖?搖if(a[i]!=0)

?搖?搖?搖?搖for (j=i+a[i];j<=100;j+=a[i])

?搖?搖?搖?搖?搖a[j]=0;

這樣才稱得上是篩法[3]。這里j并不是每次加1,而是加[ai],而且不需要費時的“%”運算,在效率方面與原來的寫法有天壤之別。編寫程序與做人一樣,要誠實守信,程序的編寫要體現真正的方法,名副其實,不能撒謊。

三、做人要勤儉節約

勤儉節約是一種美德,黨中央嚴令取消公宴,前一段時間興起的“光盤”行動,就是反對鋪張浪費,主張勤儉節約的良好說明。每一個編程的人不僅生活中要勤儉節約,而且在編寫程序時也要注意勤儉節約的問題。在教材第168頁有這樣的題目[1]:輸出以下的楊輝三角形(要求輸出10行)。

1

1 1

1 2 1

…… …… ……

文獻[2]在第60頁給出如下的參考解答[2]:

楊輝三角形的每一行都可以根據前一行得到,若只是輸出楊輝三角形,則求得一行的數據后,前一行的數據也就沒有用處了。這樣一來該問題最多只需要兩個具有10個元素的一維數組就足夠了:一個存儲某行楊輝三角形數據,另一個存儲其備份,用來計算下一行數據。因此參考解答中定義10*10的二維數組太浪費了[3]。如果是從后向前計算楊輝三角形數據,那么連備份的數組也用不到,只需一個數組就可以了[3]:

這里只是略舉幾例,《C語言程序設計》課程中的育人素材還很多,可以深入挖掘,并充分利用這些素材,在教書的同時做一些育人工作。

參考文獻:

[1]譚浩強著.C程序設計(第四版)[M].北京:清華大學出版社,2010.

[2]譚浩強著.C程序設計(第四版)學習輔導[M].北京:清華大學出版社,2010.

[3]薛非.拋棄C程序設計中的謬誤與惡習[M].北京:清華大學出版社,2012.

[4]茆詩松,程依明,濮曉龍編著.概率論與數理統計教程[M].北京:高等教育出版社,2011:50-51.

作者簡介:劉鵬(1973-),男,副教授,主要從事信息與計算科學專業的課程教學。

主站蜘蛛池模板: 一区二区三区国产精品视频| 免费毛片视频| 久久久久久国产精品mv| 中国一级特黄大片在线观看| 国产一级片网址| 九色免费视频| jizz在线免费播放| 亚洲成a人片7777| 四虎精品国产永久在线观看| 日本日韩欧美| 久久99精品久久久大学生| 亚洲欧美日韩中文字幕在线| 国产精品欧美亚洲韩国日本不卡| 免费一级毛片不卡在线播放| 免费一级毛片| 国产欧美日韩资源在线观看| 日日摸夜夜爽无码| 久久久久久久久久国产精品| 高清无码手机在线观看| 在线观看国产精美视频| 91视频区| 国产免费好大好硬视频| 欧美日韩精品一区二区在线线| 精品少妇人妻一区二区| 亚洲欧美日韩成人高清在线一区| 精品国产乱码久久久久久一区二区| 亚洲欧美自拍视频| 日韩AV无码一区| 欧美区国产区| 欧美精品在线观看视频| 91久久大香线蕉| 又大又硬又爽免费视频| 国产人人射| 亚洲欧美国产五月天综合| 国产成人亚洲无码淙合青草| 日本欧美视频在线观看| 久久人人97超碰人人澡爱香蕉| 成人午夜在线播放| 五月婷婷激情四射| 国产精品嫩草影院av| 亚洲AV无码乱码在线观看代蜜桃 | 日韩欧美国产中文| 国产不卡一级毛片视频| 黄色网在线免费观看| 国产H片无码不卡在线视频| 国产免费a级片| 国产美女91呻吟求| 欧美精品另类| 免费国产小视频在线观看| 国产亚洲欧美在线人成aaaa| 亚洲激情区| 亚洲一本大道在线| 一本一道波多野结衣一区二区| 制服丝袜亚洲| 无码日韩视频| 午夜国产大片免费观看| 欧美黑人欧美精品刺激| 青青青视频91在线 | 综合色在线| 国产成人精品一区二区| 免费av一区二区三区在线| 97se亚洲综合| 国产在线视频二区| 精品少妇人妻av无码久久| 免费国产高清视频| 国产v精品成人免费视频71pao| 动漫精品啪啪一区二区三区| 无码区日韩专区免费系列| 99视频在线精品免费观看6| 午夜视频www| 广东一级毛片| 在线精品欧美日韩| 无码一区中文字幕| 成年av福利永久免费观看| 国产精品主播| 伊人网址在线| 一级香蕉视频在线观看| a级高清毛片| 一级不卡毛片| 国产午夜福利片在线观看| 亚洲成人网在线观看| 亚洲 日韩 激情 无码 中出|