呂雙慶
摘 要:在C語言程序設計的教學過程中,運用邏輯思維方法,把經思維演繹得到的結果借助自然語言翻譯成程序設計語言,可以降低學生學習的難度,培養學習興趣,提高程序設計的技巧。
關鍵詞:邏輯思維;C語言程序設計;教學;
中圖分類號:G40 文獻標識碼:A 文章編號:1674-3520(2015)-08-00-01
C語言具有功能豐富、表達能力強、應用面廣等特點,是現金在國內外廣泛使用的一種計算機語言。許多高校都把C語言程序設計作為一門重要的課程。然而由于C語言牽涉的概念比較復雜、規則繁多、使用靈活,很多學生在學習的過程中不能很好地理解算法,編寫程序困難,感覺無從下手,逐漸產生了抵觸和畏難情緒。為了解決這一問題,我們可以把邏輯思維方法運用到教學過程中。
程序設計語言不過是一種邏輯語言,而程序(或稱算法)不過是用該語言表示的一系列推理規則。計算機程序設計就是以一種符號化的語言系統為載體,通過對這一系列的符號進行推理運算以達到某一特定的目的。因此,一個C語言程序的設計過程實際上就是將人們處理該問題的邏輯思維翻譯、變換成計算機所能識別的語句集合的過程。思維是人腦對客觀事物能動的、間接的和概括的反映,語言是人類形成和表達思想的手段。人類借助于語言的幫助來進行思維,并且通過語言表現出來,但計算機不能直接執行人類的自然語言。程序設計語言是人與計算機之間交換信息的工具,人是通過它來指揮計算機進行工作的。C語言是一種計算機高級語言,采用英語單詞表達語句,接近人類的自然語言和數學語言。在C語言程序設計的教學過程中,依據結構化程序設計的方法,可以從自然語言和程序設計語言的自身特點出發,構建一個可以將自然語言翻譯成程序設計語言的邏輯對應關系。
在教學過程中我們從一開始就要給學生建立一個清晰的基礎知識結構。任何一個C語言程序都可以看作由4個步驟組成:定義變量、輸入數據、處理數據、輸出數據。即一個C程序的一般結構可以將它歸納成下面的格式:
# include
main( )
{
定義變量;(int,float,char,double等)
輸入數據;(直接賦值,例如x=8或標準輸入函數scanf( )等)
處理數據;(if-else;switch;for;while;do…while等)
輸出數據;(printf( ))
}
有了以上的結構認識后,在教學的過程中,遇到一個具體的問題,就要按照人們處理問題的邏輯思維,將問題求解由抽象逐步具體化,搞清楚其中的數據關系及問題的要求,分析如何解決此問題。例如在中國古代著名的“雞兔同籠”數學問題中講的是:在同一個籠子中養著雞和兔,但只知道雞和兔的總數是 ,雞和兔的總腳數是 ,求雞和兔各有多少只。看到這個題目后我們的思路一般是這樣:題目已經知道雞和兔的總數是 以及雞和兔的總腳數是 兩個條件,要得到雞和兔分別有幾只,可以根據數學方法先假設雞有 只,兔有 只,然后建立方程組:
解方程組可得:
此即求 和 的數學模型,只要代入具體的 和 的值,即可得到 和 的值。
那么以上過程如何由計算機來完成計算呢?根據C程序的4個步驟,要先定義4個變量:m、n、x、y。接著把m和n的值從鍵盤輸入,然后根據 , 計算x和y的值,也就是得到雞和兔的只數,最后打印輸出雞有幾只,兔有幾只。
至此,我們完成了構建自然語言翻譯成程序設計語言的邏輯對應關系過程。可以輕松的寫出程序如下:
#include< stdio.h >
main() /* 主函數 */
{
int m,n,x,y; /* 定義變量m,n,x,y */
printf(“Enter the number of heads:”); /* 輸入雞和兔的總數m */
scanf(“%d”,&m);
printf(“Enter the number of feet:”); /* 輸入雞和兔的總腳數n */
scanf(“%d”,&n);
x=(4*m-n)/2; /* 計算雞的只數 */
y=(n-2*m)/2; /* 計算兔的只數 */
printf(“There are %d chicks \n”,x); /* 在屏幕上輸出雞有多少只 */
printf(“There are %d rabbits \n”,y); /* 在屏幕上輸出兔有多少只 */
}
程序運行結果為:
Enter the number of heads: 18
Enter the number of feet: 60
There are 6 chicks
There are 12 rabbits
科學家馬希文教授曾說過:“用一串符號把一個計算機過程描述出來,就是一個程序……制定一些嚴格的規則,以確定什么樣的符號表示什么樣的程序。這些規則的總和就叫做一種語言”。在程序設計的學習過程中,主要是學會分析問題、設計方案(建立數學模型—— 算法),在此過程中,邏輯思維起到了重要的作用,它使程序設計的過程嚴謹,條理清晰。經過嚴密的思考,再將該過程通過自然語言和程序語言聯系,C語言的編程變得順理成章,大大降低了學生學習的難度,提高了學習興趣。
參考文獻:
[1]譚浩強.C程序設計(第三版)[M].北京:清華大學出版社,2005.
[2]張桃紅,彭真,楊炳儒,謝永紅.“C程序設計”課程的KM教學法研究 [J].計算機教育,2010(02):113—115.
[3]賈茹,郝長勝,鄭惠生,裴衣非,董煥芝.運用自然語言的思維建構C語言程序設計教學 [J].計算機教育,2006(10):52—54