上海戲劇學(xué)院附屬戲曲學(xué)校 郭 毅
相傳國(guó)際象棋是由印度舍罕王手下的大臣薩.班達(dá)依爾發(fā)明的,舍罕王準(zhǔn)備獎(jiǎng)賞達(dá)依爾,問(wèn)他想得到怎樣的獎(jiǎng)賞,達(dá)依爾說(shuō):“陛下,請(qǐng)您在這張棋盤的第一個(gè)小格內(nèi)賞給我一粒麥子,在第二個(gè)小格內(nèi)給兩粒,在第三個(gè)小格內(nèi)給四粒,照這樣下去,每一小格內(nèi)都比前一小格內(nèi)的麥粒數(shù)加一倍,直到把每一小格都擺上麥粒為止。并把這樣擺滿棋盤上六十四格的麥粒賞給您的仆人”。國(guó)王認(rèn)為這位大臣的要求不算多,就爽快地答應(yīng)了。國(guó)王叫人抬來(lái)麥子并按這位大臣的要求,在棋盤的小格內(nèi)擺放麥粒,在第一個(gè)格內(nèi)放一粒,在第二格內(nèi)放兩粒,第三格內(nèi)放四粒……第十格內(nèi)放五百一十二粒,還沒(méi)擺到第二十格,一袋麥子已經(jīng)用光了。國(guó)王這才發(fā)現(xiàn),即使把全國(guó)的麥子都拿來(lái),也兌現(xiàn)不了他對(duì)這位大臣的獎(jiǎng)賞承諾,這位大臣所要求的麥粒數(shù)究竟是多少呢?
1.窗體設(shè)置
2.程序清單
累加器為:0,計(jì)數(shù)器為第一項(xiàng)的值:1
在上述算法一的設(shè)計(jì)中,我們考慮到了每一個(gè)格子中的麥粒數(shù)目是成等比級(jí)數(shù)的遞增,但是,同時(shí)我們也考慮到對(duì)于前后格子中的麥粒數(shù)目的表達(dá)式中,等比級(jí)數(shù)的指數(shù)是一個(gè)等差數(shù)列。
1.程序清單一:
累加器為0:S=0
計(jì)數(shù)器為1:I=1
2.程序清單二:
累加器為0:S=0
計(jì)數(shù)器為0:I=0
3.程序清單三:
累加器為1:S=1
計(jì)數(shù)器為0:I=0
4.程序清單四:
累加器為1:S=1
計(jì)數(shù)器為1:I=1
綜上所述,循環(huán)程序中的三要素:變量初始化、循環(huán)體、循環(huán)條件可以說(shuō)是一環(huán)套著一環(huán),只要有一個(gè)要素變化了,其它二者也要做相應(yīng)的變化才能實(shí)現(xiàn)相同的程序運(yùn)算結(jié)果。該問(wèn)題的解決中牽扯到累加器和計(jì)數(shù)器的初值設(shè)置,并且二者之間在程序中是有關(guān)聯(lián)的,這種關(guān)聯(lián)的關(guān)系也就決定了所附的初值引發(fā)了循環(huán)體的變化。在此基礎(chǔ)上,不僅僅可以設(shè)計(jì)單純數(shù)字的變化,也可以讓學(xué)生嘗試圖形的變化,試著讓學(xué)生利用循環(huán)程序繪制不同的圖形效果等,讓學(xué)生深刻體會(huì)不管是怎樣實(shí)現(xiàn)視覺(jué)上還是抽象的數(shù)字上面的循環(huán)變化,都離不開(kāi)變量初始化、循環(huán)體、循環(huán)條件的關(guān)聯(lián)。至此利用多種算法來(lái)編寫(xiě)程序,無(wú)疑給學(xué)生帶來(lái)更多解決問(wèn)題的思路,開(kāi)拓學(xué)生的視野,培養(yǎng)學(xué)生的一種發(fā)散性思維能力。同時(shí),讓學(xué)生切身感受到針對(duì)一個(gè)問(wèn)題可以有多種算法,體驗(yàn)算法的多樣性。算法給學(xué)生留下“條條大路通羅馬”的經(jīng)驗(yàn),因此,也激勵(lì)著學(xué)生在思考問(wèn)題的時(shí)候,會(huì)想到更多更好更精簡(jiǎn)的算法來(lái)解決它。有了自己獨(dú)有的算法,自然而然會(huì)調(diào)動(dòng)其極大的學(xué)習(xí)興趣,這也是我們教師如何把枯燥的算法程序的學(xué)習(xí)轉(zhuǎn)變?yōu)閷W(xué)習(xí)興趣的切入點(diǎn)。毋庸置疑,能夠把學(xué)生引入算法設(shè)計(jì)的殿堂,對(duì)于我們教師來(lái)說(shuō),前期艱辛的準(zhǔn)備工作不可缺少,教學(xué)多納入“授之以漁,而不是授之以魚(yú)”的方法,首先,讓學(xué)生對(duì)算法結(jié)構(gòu)有個(gè)清晰的概念,其次,自己應(yīng)該想到各種解決問(wèn)題的方法。只有這樣,才能把問(wèn)題的來(lái)龍去脈透徹詳盡的加以把握。