荊春萍
(平度市高級技工學校,山東平度 266700)
發散思維與收斂思維在《C程序設計》中的應用
荊春萍
(平度市高級技工學校,山東平度 266700)
在《C程序設計》課堂教學中,將發散思維和收斂思維進行有機地結合,能夠充分地調動學生學習積極性,激發了學生學習該課程的興趣,提高了學生的學習探究能力,有效地進生了課堂教學創新。《C程序設計》是普通高職、高等院校計算機專業學生的必修課。而在中職教學中,開設《C程序設計》課程的目的是使學生掌握程序設計的基本概念及基本方法,并能較熟練地進行程序設計。
發散思維 收斂思維 C程序設計
在中職的實際教學中,如何培養、激發、提高學生的編程興趣至關重要,該文探討了在《C程序設計》教學過程中的發散思維和收斂思維,并將其應用到實際的教學中。
概念。又稱輻射思維、放射思維、擴散思維或求異思維,是指大腦在思維時呈現的一種擴散狀態的思維模式,它表現為思維視野廣闊,思維呈現出多維發散狀。發散思維是一種求異思維,為在廣泛的范圍內搜索,要盡可能地放開,把各種不同的可能性都設想到。
例如:輸入一個大于3的整數m,判斷它是否是“素數”(又稱“質數”)
分析1:何為“素數”,即是數學中的“質數”,只能被1和它本身整除的數(而2—m-1范圍內沒有能被整除的數)。例如判斷17是否是素數,要將17被2至16分別來整除,循環體被重復執行了15次。教材中的例題程序清單如下:我們稱之為“程序一”
程序一

分析2:程序改進其實m不必被2—m-1范圍內的各整數去除,只須將2—m/2間的整數除即可,甚至只須被2—之間的整數除即可。例如判斷17是否是素數,只須將17被2、3、4除即可,如都不能被整除,m即為素數。這樣做可以大大減少循環的次數,提高了程序的運行效率。程序清單如下:我們稱之為“程序二”
程序二

實踐證明,判斷變量i與k之間的大小關系m不是素數時容易明白,是素數時學生在理解起來有一定的難度。下面再引入程序清單通過flag標志來判斷m是否是“素數”,假定要判斷的數是素數,設flag標志是1在通過循環判斷只要m不是素數,馬上修改標志flag是0,循環強行中止,最后在輸出時根據flag的值來判斷m是否是素數。原理也是依據定義及程序二的改進,我們分別稱之這“程序三”和“程序四”
程序三:

概念。又稱“聚合思維”、“求同思維”、“輻集思維”或“集中思維”。收斂思維是一種求同思維,要集中各種想法的精華,達到對問題的系統全面的考察,為尋求一種最有實際應用價值的結果而把多種想法理順、篩選、綜合、統一。
收斂思維也是為了解決某一問題,在眾多的現象、線索、信息中,向著問題一個方向思考,根據已有的經驗、知識或發散思維中針對問題的最好辦法去得出最好的結論和最好的解決辦法。而發散思維是為了解決某個問題,從這一問題出發,想的辦法、途徑越多越好,總是追求還有沒有更多的辦法。
實踐證明四個程序都能判斷m是否是“素數”。學生通過分組探究,得出如下的結論。從學生易接受的角度來看,程序三、四要優于程序一、二;從程序運行的效率角度來看,程序四、二要高于程序三、一;從學生接受的角度和運行效率來看,程序四最佳選擇。
發散思維與收斂思維在《C程序設計》中的還有許多應用實例,例如,分別用while、do—while、for來編程求1+2+3+……+100的和,對數據的排序分別用選擇法、冒泡法、插入法排序,數據的查找分別有順序查找和二分查找,分別用函數調用(簡單變量和指針作函數參數)返回兩個數中較大者等等,在此不再一一列舉。
發散思維是由問題的中心指向四面八方,收斂思維是由四面八方指向問題的中心。發散思維是一種求異思維,為在廣泛的范圍內搜索,要盡可能地放開,把各種不同的可能性都設想到。收斂思維是一種求同思維,要集中各種想法的精華,達到對問題的系統全面的考察,為尋求一種最有實際應用價值的結果而把多種想法理順、篩選、綜合、統一。
發散思維與收斂思維是一種辨證關系,既有區別,又有聯系,既對立又統一。沒有發散思維的廣泛收集,多方搜索,收斂思維就沒有了加工對象,就無從進行;反過來,沒有收斂思維的認真整理,精心加工,發散思維的結果再多,也不能形成有意義的創新結果,也就成了廢料。只有兩者協同動作,交替運用,一個創新過程才能圓滿完成。
[1]譚浩強著.《C程序設計》(第四版).