Scratch編程(programming)作為一款由麻省理工(MIT) 設計開(kāi)發(fā)的一款面向少年的簡(jiǎn)易編程工具,具有計算機語(yǔ)言的一切結構(Structure)特性。下面就來(lái)說(shuō)說(shuō)怎樣用scratch解數學(xué)題,大家千萬(wàn)別錯過(guò)。 ?
怎樣用scratch解數學(xué)題 ?
一個(gè)大于1的自然數,請判斷它是合數還是質(zhì)數!比如,99991是質(zhì)數還是合數? ?
我們知道,質(zhì)數就是只有1和它自身兩個(gè)因數的數。因此,要判斷一個(gè)大于1的自然數n是不是質(zhì)數,最簡(jiǎn)單的辦法就是看n能不能被2~n-1中的某個(gè)數整除。只要有一個(gè)數能被n整除,n就是合數;如果都不能被n整除,n就是質(zhì)數。比如97,我們就看它能不能被2~96中的某一個(gè)數整除。 ?
這個(gè)方法說(shuō)起來(lái)很簡(jiǎn)單,但是如果給出的數較大,實(shí)際算起來(lái)就沒(méi)那么簡(jiǎn)單!比如,99991。再比如,1234567891。通過(guò)人工計算來(lái)判斷出它們是質(zhì)數還是合數,那真不是一件容易的事。 ?
能不能編一個(gè)程序讓計算機來(lái)幫助我們計算呢?當然可以!根據上述算法就可以畫(huà)出程序流程圖。 ?
有了流程圖,編寫(xiě)代碼就很簡(jiǎn)單了。流程圖就是編程的施工圖。學(xué)習編程,畫(huà)流程圖是基本功。一定要養成無(wú)流程圖不寫(xiě)代碼的好習慣!流程圖本身就是編程思路的體現,通過(guò)畫(huà)流程圖也可以進(jìn)一步整理我們的思路。 ?
程序寫(xiě)好后,還要調試,看看功能是否正常。通過(guò)調試,我們會(huì )發(fā)現對于不太大的數,這個(gè)程序很快就能給出結果,簡(jiǎn)直是秒殺!但如果你輸入1234567891,程序運行很久才會(huì )出結果。這種狀況,其實(shí)也是不能接受的。正如你玩一個(gè)游戲,它老是卡頓,你還會(huì )玩嗎?一個(gè)好的程序,只考慮功能的正確性是不夠的,還要考慮它的運行速度,它占用計算機內存的情況。當然,這是對高級程序員的要求。我們在學(xué)習編程的時(shí)候,更多地還是考慮功能的正確性。 ?
運行速度過(guò)慢,怎么辦?重新設計呀!太慢,嚴格來(lái)講就是不符合設計要求。你必須重新考慮程序的架構和實(shí)現算法。 ?
要判定一個(gè)數n是不是質(zhì)數其實(shí)不需要一直試到n-1,到n的算術(shù)平方根(要取整,絕大多數程序設計語(yǔ)言都有取整運算符或者功能塊)就可以了!其流程圖與之前的算法基本相同,不再贅述。直接上程序代碼。 ?
運行程序,按照提示輸入1234567891。程序很快就給出結果了。由此可見(jiàn),在編程中,算法是很重要的。隨著(zhù)學(xué)習的深入和編制的程序越來(lái)越復雜,我們就能更深地體會(huì )到:算法是程序的靈魂。 ?
計算機是不是很強大呀!但前提是你要會(huì )編程呀!只有會(huì )編程,你才能讓計算機替你解決問(wèn)題呀!別擔心,編程其實(shí)也沒(méi)有想象那么難!只要你愿意學(xué)。 ?
Scratch雖然是專(zhuān)門(mén)為少兒設計的編程語(yǔ)言,但其功能還是非常強大的,不僅可以創(chuàng )建動(dòng)畫(huà)、游戲和故事書(shū),還可以用來(lái)求解數學(xué)題,實(shí)現一些數學(xué)算法。學(xué)過(guò)Scratch后,將來(lái)再學(xué)習其他高級程序設計語(yǔ)言,理解起來(lái)也會(huì )更加順暢,更加容易! ?
?
scratch找素數的算法練習 ?
題目:找出100以?xún)鹊乃財?2-99)。 ?
質(zhì)數又稱(chēng)素數,指在一個(gè)大于1的自然數中,除了1和此整數自身外,沒(méi)法被其他自然數整除的數。 ?
思路:從2開(kāi)始依次判斷每個(gè)數是不是素數,如果是的話(huà)就加入到列表里。難點(diǎn)在于如何判斷一個(gè)數是不是素數,根據素數的定義,需要使用重復執行,只要能被1和自身之外的數整除(余數=0),那么就不是素數,停止本次循環(huán),然后去判斷下一個(gè)自然數是不是素數。 ?
1、添加變量num表示100以?xún)鹊淖匀粩?,?開(kāi)始,依次遞增,挨個(gè)判斷是否為素數 ?
2、添加變量i作為除數(取值為2到num)用來(lái)判斷是否為素數 ?
3、添加變量“是否為素數”標記num是否是素數(初識默認這個(gè)數是素數,通過(guò)重復執行除以i,如果被整除那么就改變值為0,即不是素數,停止本次重復執行) ?
4、如何停止本次重復執行?通過(guò)修改變量的值,使重復執行結束的條件成立,這樣就可以減少不必要的計算次數。 ?
5、每個(gè)自然數num重復執行除法判斷結束后根據變量“是否為素數”來(lái)確定最終結果,如果等于1,那么就是素數,將該數添加進(jìn)列表。 ?
scratch如何編寫(xiě)判斷運算是否正確的程序 ?
1、打開(kāi)scratch,進(jìn)入它的主界面; ?
2、用鼠標左鍵點(diǎn)擊一下事件面板; ?
3、將當綠旗被點(diǎn)擊拉到右邊的腳本編輯區中; ?
4、點(diǎn)擊偵測面板; ?
5、添加詢(xún)問(wèn)命令; ?
6、將詢(xún)問(wèn)內容改為要出的數學(xué)題,如3加4等于幾? ?
7、點(diǎn)擊控制面板,添加條件判斷命令; ?
8、在條件判斷中添加如下腳本,并*添加一個(gè)重復執行命令; ?
9、點(diǎn)擊綠旗執行程序,開(kāi)始出題3加4等于幾,下面出現一個(gè)答題響應框; ?
10、如果輸入答案7,然后按后面的對勾; ?
11、電腦就會(huì )提示答對了,真棒,并停止執行程序; ?
12、如果輸入的答案不是7,然后按后面的對勾; ?
13、電腦就會(huì )提示再試試,然后停留在答題框中,讓用戶(hù)重復答題,直到答題正確為止。 ?