張立新
Scratch作為一種新型的程序設(shè)計(jì)語(yǔ)言,具有計(jì)算機(jī)語(yǔ)言的一切結(jié)構(gòu)特征。了解程序的結(jié)構(gòu)特點(diǎn),對(duì)于我們使用Scratch進(jìn)行程序設(shè)計(jì)是有一定幫助的。
下面就程序的幾種結(jié)構(gòu)做簡(jiǎn)單的分析。
一般來(lái)說(shuō),任何復(fù)雜的程序都是由順序、循環(huán)、選擇這三種基本的結(jié)構(gòu)組成的,這三種結(jié)構(gòu)既可以單獨(dú)使用,也可以相互結(jié)合組成較為復(fù)雜的程序結(jié)構(gòu)。
我們首先來(lái)看一下順序結(jié)構(gòu)。順序結(jié)構(gòu)是程序結(jié)構(gòu)中最基本的,也就是說(shuō),程序是按從上往下的順序執(zhí)行的。比如表現(xiàn)兩個(gè)角色進(jìn)行對(duì)話的作品 ,兩個(gè)角色的程序腳本如圖1所示。
圖1 ?順序結(jié)構(gòu)作品代碼
在這個(gè)作品中,每個(gè)角色的程序腳本都是按照先后順序從前向后執(zhí)行的,因此我們把這種結(jié)構(gòu)稱為順序結(jié)構(gòu)。
有些程序需要我們不斷重復(fù)同樣的內(nèi)容,比如在制作不斷切換造型來(lái)實(shí)現(xiàn)的動(dòng)畫(huà)效果時(shí),需要不斷重復(fù)切換不同的造型,這就是循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)一般用于重復(fù)某段需要不斷重復(fù)執(zhí)行的代碼,如圖2所示。
圖2 ?循環(huán)結(jié)構(gòu)作品代碼
第三種程序結(jié)構(gòu)是選擇結(jié)構(gòu)。選擇結(jié)構(gòu)也稱為判斷結(jié)構(gòu)或分支結(jié)構(gòu),是在順序結(jié)構(gòu)中提供了程序的分支,也就是說(shuō)在程序的一個(gè)順序流程中加入子程序流程,這樣可以使得程序更具交互性,分支結(jié)構(gòu)又可分為單分支結(jié)構(gòu)和雙分支結(jié)構(gòu)。在Scratch中相應(yīng)提供了這兩個(gè)模塊,如圖3所示。
圖3 ?Scratch中選擇結(jié)構(gòu)模塊
我們先來(lái)看單分支結(jié)構(gòu)模塊的流程圖,如圖4所示。
圖4 ?單分支結(jié)構(gòu)流程圖
從流程圖中我們能夠看出,如果條件為真(滿足條件),和前面的順序結(jié)構(gòu)完全相同,如果條件為假(不滿足條件)時(shí),程序就會(huì)繞行。
在這里我們舉一個(gè)例子:商場(chǎng)進(jìn)行商品促銷,凡購(gòu)買(mǎi)超過(guò)兩百元商品的顧客可享受九折優(yōu)惠,200元以下(包括200元)按原價(jià)付款,請(qǐng)使用Scratch編寫(xiě)計(jì)算付款金額的程序。
在此應(yīng)用中要對(duì)付款的金額做出判斷,如果金額滿足大于200元這個(gè)條件則打九折,不滿足這個(gè)條件則不運(yùn)行判斷語(yǔ)句中的指令,繞行程序,如圖5所示。
圖5 ?單分支結(jié)構(gòu)作品實(shí)例
我們?cè)賮?lái)看一下雙分支結(jié)構(gòu)的流程圖,如圖6所示。
圖6 ?雙分支結(jié)構(gòu)流程圖
從分流程圖中可以看出,在雙分支結(jié)構(gòu)中當(dāng)條件為真(滿足條件),執(zhí)行語(yǔ)句序列1,如果條件為假(不滿足條件),將執(zhí)行語(yǔ)句序列2。
比如:判斷奇偶數(shù)的例子,當(dāng)我們輸入一個(gè)數(shù)字后,計(jì)算機(jī)通過(guò)計(jì)算看它能否被二整除。如果這個(gè)數(shù)字除以二后所得余數(shù)為零,那么輸出“此數(shù)為偶數(shù)”,如果不滿足這個(gè)條件,執(zhí)行序列2的模塊,輸出“此數(shù)為奇數(shù)”,如圖7所示。
圖7 ?雙分支結(jié)構(gòu)作品實(shí)例
這三種結(jié)構(gòu)是計(jì)算機(jī)程序語(yǔ)言中最基本的結(jié)構(gòu),在實(shí)際編程過(guò)程中我們通常還會(huì)把它們結(jié)合起來(lái)使用,比如在Scratch1.4中還有這樣兩個(gè)模塊,如圖8所示。
圖8 重復(fù)結(jié)構(gòu)和選擇結(jié)構(gòu)相結(jié)合
以上介紹了程序的三種基本結(jié)構(gòu)以及在Scratch中的使用方法。相信學(xué)生掌握了這些知識(shí),在編寫(xiě)程序的過(guò)程中會(huì)更加得心應(yīng)手、游刃有余。
(作者單位:北京史家胡同小學(xué))