陳麗紅
(浙江省金華市第六中學)
逆思維,也就是逆向思維,它是對司空見慣的似乎已成定論的事物或觀點反過來思考的一種思維方式。敢于“反其道而思之”,讓思維向對立面的方向發(fā)展,從問題的相反面深入地進行探索,樹立新思想,創(chuàng)立新形象。
大家都玩過走迷宮的游戲,那么走出迷宮的最好最快的方法是什么呢?有經(jīng)驗的朋友一定會說:從出口處出發(fā)倒著走。對,倒退走迷宮是一種經(jīng)過實踐檢驗的非常有效的方法。從目的地出發(fā)逆向出發(fā)點可以更快地找到答案。這就是一種新的思維模式:倒著解決問題。
一般我們讀程序的時候都是從前往后讀,但是對于某些問題,尤其是一些特殊問題,從下一條語句或者從最后的輸出語句往前推理,倒過來思考,從求解回到已知條件,反過去想反而會使問題簡單化。
信息技術選考中,程序填空題是一個難點,因為在填空時,如果填寫正確則得滿分,如果填寫錯誤得零分,沒有像數(shù)學等其他學科中的解答過程步驟分,因此在考試中得分率不高。在學生熟練地掌握了基本的程序語句和語法的基礎上,如何讓學生快速提高程序填空題的得分率呢?筆者經(jīng)過對大量的程序填空題的研究,發(fā)現(xiàn)采用逆向思維法是一種非常有效的方法。下面我結合具體的案例進行分析。
先看下面浙江省2016年10月份的高考選考題中的第17題的程序段:
‘依據(jù)數(shù)組a中的相關數(shù)據(jù)統(tǒng)計各班級平均分
為了提高讀程序的效率,我們一般先按照程序結構把程序分割成幾個小段,這樣更容易理解,例如以上程序中,我們根據(jù)循環(huán)結構把程序分割成三個小段,分別用虛線框(一)(二)(三)標出。
如何填第①空呢,如果按照從上到下閱讀下來,感覺不太好填,但是從第二個語句p=n+2可以看出這里的n是一個局部變量,那么在第二個語句之前應該先對n進行賦值,而除了第①空未知內容以外,我們并沒有找到對n進行賦值的操作,所以由此可以確定第①空是一個“n=?”的對n進行賦值的語句,思維這樣有了目標,那么就有了方向,再根據(jù)下面的二條循環(huán)語句For i=1 To n和For j=1 To a(i+1)以及根據(jù)題目內容理解和題目給出的數(shù)組的含義,反向思考就不難得出結論,在第①空中應該填寫“n=a(1)”。(數(shù)組含義可以看原題目,這里不再贅述)。
根據(jù)程序段(二)可以看出這是一個循環(huán)變量為i的for循環(huán)語句,其中這個語句的嵌套內有程序段(三)循環(huán)變量為j的for循環(huán)語句。當讀到這個語句aver=sum/a(i+1)時,返上去讀程序可以邏輯推理出,在這之前的語句中缺少變量sum的賦值。因此馬上可以確定第②空應該填寫“sum=?”的對變量“sam”進行賦值的語句,為解題確定了目標,然后根據(jù)題意sum=sum+a(?),數(shù)組的下標用哪個變量來改變呢?從它下面的一條語句p=p+1,可以推導出用p變量。因此很容易就可以確定第②空應該填寫的是“sum=sum+a(p)”。
先來看下面一段于2017年3月稽陽聯(lián)誼學校聯(lián)考技術試題卷的第17題程序,(因為原程序題比較長,以下截取關鍵部分程序段示例):
還是采用同樣方法,我們先根據(jù)程序結構把程序分割成三個小段,分別用虛線框(一)(二)(三)標出。
先看程序段(一),它是一個循環(huán)變量為i的for循環(huán)語句,根據(jù)if語句的格式可知第①空應該寫一個條件表達式,然后根據(jù)then后面的語句flag(i)=True Else flag(i)=False ,在程序的省略部分有備注說明 flag(i)變量的作用是用來存放身份證校驗結果,因此可以確定第①空應該填與校驗身份證號有關的內容,由程序前面省略部分可知,身份證號校驗的功能是利用自定義函數(shù)check(x)完成的,x這個變量用什么來傳遞呢?根據(jù)題目提供的變量定義可知數(shù)組sfzh(i)用來傳遞身份證號,因此可以確定第①空應該填寫的內容是check(sfzh(i))。
先分析程序段(二),這是一個循環(huán)變量為i的for循環(huán)語句,其中這個語句的嵌套有循環(huán)變量為j的for循環(huán)語句程序段(三)。我們采用逆思維法:先看最后的輸出語句“List2.Add Item Str(i)+"班共有以上"+Str(cw(i))+"個身份證號錯誤"”,從這個輸出語句我們很明顯馬上可以推斷出i和cw(i)這兩個變量的作用:i:是班級數(shù),cw(i)是存放身份證號錯誤的個數(shù)。再看整個程序段中在這個輸出語句之前沒有一個語句對變量cw(i)進行賦值來改變其內容,而第②空根據(jù)語句是寫一個條件表達式,由此推斷很快就可以確定第②空需要填寫的內容是“cw(i)=cw(i)+1”。
通過上述兩個案例,我們不難發(fā)現(xiàn),逆思維法是一種解決信息技術選考程序填空難題的行之有效的方法。當然,每個題目不一樣,解決問題的最優(yōu)方法是千變萬化的,以上筆者的解題思路也不見得一定是最好的,淺見權當拋磚引玉,希望能有更多同行和我一起在實踐中求真知。
[1]何文勇.新高考背景下信息技術課堂教學有效性的探索與研究[J].新課程,2017(3).
[2]劉鑫.新高考背景下信息技術課堂作業(yè)的設計[J].文理導航,2017(5).