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