1. 程式人生 > >Scratch2.0程式設計--第十節 過程

Scratch2.0程式設計--第十節 過程

本節我們來介紹結構化的程式設計中最關鍵的一個節點:過程。一個複雜的程式往往需要很長很長很複雜的程式碼,而把這些程式碼全部編寫在一段指令碼中,不但不好理解也不好測試和除錯,如果把程式按照實現不同的功能劃分成不同的小過程,就簡單明瞭。

1、過程的建立

        用過程的思維解決複雜問題的本質就是“分而治之”:將一個很大很複雜的問題分解成許多小的子問題,然後逐個突破。

        我們來看看下面這段程式碼,通過過程分解後是不是簡單明瞭?


        那麼在Scratch中通過哪裡來建立過程呢?模組“更多模組”下的“新建功能塊”,點選後螢幕會出來如下對話方塊:

        


        紫色輸入框種輸入過程的名稱,點選選項,還可以為過程新增很多輸入引數。雖然全域性變數可以在整個程式內使用,但是數量太多了會嚴重增加程式的複雜度,因此用引數的形式將過程需要的變數帶入,就會簡單很多。

比如上面的畫正方形或者三角形的過程,這樣的過程只能畫邊長為100的正方形和三角形,如果我想要根據程式的需要來畫不同的邊長的圖形,那麼引數就可以做到:

        
        引數作為數字、字串、布林型別都比較好理解,我們來看看“文字標籤”是什麼?

        
        看到這個大家就明白了吧?這其實和積木裡的文字標籤是同一個意思,起到說明作用的。

        下面我們來總結一下過程的特性:

        (1)過程不能在角色之間共享。過程只能在角色內使用,同樣,舞臺的過程也只能在舞臺的指令碼中使用。

        (2)給引數命名的時候,儘量採用具有實際意義的名稱,這樣可以提高程式的可讀性,一目瞭然。

        (3)過程的刪除有兩種方法,直接從指令碼區拖到積木區,或者在積木區右鍵“刪除”,但是在被引用的過程不能被刪除。

        (4)如果要增加或者刪除引數,點選右鍵“編輯”功能即可實現。

2、過程的呼叫

        上面我們學習了過程的建立,那麼在過程中是否還可以呼叫別的過程或者自己本身呢?答案是肯定的。

        我們來看看這段程式碼:

        Draw square(Len)根據輸入的長度畫正方形。

        Draw squares()呼叫Draw square(Len)分別畫4個重疊的正方形。

        RotateSquares(number1)再呼叫Draw squares()重複的畫。

        我們分別為RotateSquares(number1)帶入引數4、6、8、10、12、14,最後就出來下面的效果:


        好了,到這裡,我們就全部講完了Scratch中指令碼區所有的模組和積木的使用方法,大家可以根據自己的想象來創造屬於自己的程式空間了。加油!