劉順清
(唐山工業職業技術學院,河北 唐山 063020)
C語言廣泛的應用于基礎軟件、桌面系統、網絡通信、音頻視頻、游戲娛樂等諸多領域。是世界上使用最廣泛的編程語言之一。隨著物聯網技術的發展,C/C++技術在3G網絡通信 (移動網絡、互聯網、Zigbee等專用網絡)、多媒體處理、智能識別等領域得到了進一步的推動和發展。顯然學好C語言是十分必要的,但是C語言編程部分在教學中是一個難點,學習起來很枯燥,知識綜合應用性強,如何讓學生充份應用好C語言的特點和各種命令的使用方法,科學合理的編寫出最佳程序,是每一位C語言教師的一個教學難點。我本人在教學中在教學過程中選擇了一些古代有趣的數學題目,通過編程來解題,把枯燥的教學內容變得生致動有趣,這樣即培養了學生們的學習興趣,又讓學生們能夠感受到古人的聰明智慧,即調動了學生的學習積極性、主動性,又提高了教學效果。
“百雞問題”出自我國古代數學家張丘建在《算經》一書,原題是:“雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?”下面先看用數學方法解答如下:
解:雞翁一值錢五:公雞五文一只,而現在百錢買百雞(100文錢買雞),所以公雞數量要最多為20。
設母雞X只,公雞Y只,小雞100-X-Y只,所以 5Y+3X+(100-X-Y)/3=100
且X,Y為整數,所以可以得出正確答案,有三種情況:
(1)公雞 4只,母雞 18只,小雞 78只
(2)公雞 8只,母雞 11只,小雞 81只
(3)公雞 12只,母雞 4只,小雞 84只
大家都知道這種算法難度較大,如果我們利用C語言編程來解這個問題,我們只需編寫好程序,在計算的上運行一下,結果就出來了。而且不管運行多少次,多么復雜,計算機都會很快地給出答案。
此問題可歸結為求不定方程的整數解。在分析確定方程中的未知數變化范圍,可通過對未知數可變范圍的查找,驗證方程在什么情況下成立,從而來求得到相應的解。


題目是“一百馬,一百瓦,大馬一拖三,中馬一馱二,小馬二拖一。”最后不剩馬和瓦,各有多少大馬、中馬、小馬
解:設大馬、中馬、小馬各 X、Y、Z 匹,可得
X+Y+Z=100
3X+2Y+1/2Z=100
把第二個方程代入第一個方程可得 5X+3Y=100
進一步通過分析求解
用C語言編程如下:

中國古代數學著作中有些數學題目非常好,充份體現了中國古人的聰明智慧。以上只是其中的兩個典型例子,我們借助現代的計算機C語言編程求解,其中的數學題中的手工運算變成了計算機自動完成,時間節省了,正確率又得到了保證。通過上面的C語言編程在計算機上求解,起到了事半功倍的作用。如果將程序中數值重新設定后在計算機上運行,馬上還可以得到一個新的結果,從而對分析題目,推定可能的多種結果或擴大范圍搜索時就顯得十分方便。這樣我們將古人智慧和現代計算機編程巧妙地融和,用之于課堂教學,可以大大激發學生們對計算機編程的興趣,同時也可以讓學生們在學習過程中感發學生的學習主動性、積極性,使枯燥的計算機編程變得生動有趣。
[1]王新.“Visual FoxPro程序設計”案例教學實踐之功效分析[J].長春理工大學學報,2011(6).
[2]潭浩強.C語言程序設計 [M].3版.北京:清華大學出版社,2014,9.