- 少兒計算思維養成記:六個孩子的編程學習筆記
- 包若寧等編著
- 1171字
- 2022-04-24 09:43:43
一、知識點
(一)什么是過程?
程序里有時會有重復的代碼。例如,我想畫兩個三角形,于是寫了圖7-1所示的這段代碼:

圖7-1 畫兩個三角形的程序(左)及運行結果(右)
運行這段代碼的確可以畫出兩個三角形,不過這段代碼太長了,而且有很多重復:畫第二個三角形時,又把畫第一個三角形的代碼重復了一遍,只是簡單地改動了幾個數字。
那么有沒有簡潔的方案呢?
有,“過程”就是解決這種問題的簡潔方案:我們首先把畫一個三角形這段代碼抽出來,構成一個模塊,這個模塊就叫“過程”;然后我們只需要調用這個過程兩次就可以了。
什么叫“調用”一個過程呢?調用一個過程就是“copy+paste”,就是把這個過程里面的指令復制一份,然后粘貼過來。好理解吧?如果這個過程中還有參數,會復雜一點,我們一會兒仔細介紹。
(二)在Scratch程序里怎樣實現過程?
在Scratch里,過程就是積木塊,我們通過“自制積木”創建一個新的過程,具體包括以下3個步驟。
第一步:定義過程
首先點擊左側的“自制積木”,然后點擊“制作新的積木”,輸入給過程起的名字,還有過程需要的參數。
以畫三角形為例,我們給新建的過程起名字叫“畫三角形”,然后點擊“添加輸入項 數字或文本”,為這個過程設置了三個形式參數:邊長、頂點x
(即頂點的x坐標)和頂點y
(即頂點的y坐標)(見圖7-2)。

圖7-2 制作新的“畫三角形”積木塊
第二步:寫過程的代碼
在寫過程代碼時,需要注意的是一定要用參數。比如“移動……步”里,我們原來填寫的是100,現在得用參數。我們把“定義 畫三角形……”那一行里的“邊長”拖過來就可以了(見圖7-3)。

圖7-3 用“畫三角形”積木塊(左)實現畫兩個三角形的程序(右)
第三步:調用過程
這一步就簡單了。我們直接兩次使用這個“畫三角形”積木,就畫出兩個三角形了。你看,這樣代碼是不是簡潔多了?
(三)調用一個過程時到底發生了什么?
我一開始對“調用一個積木塊”時到底發生了什么很糊涂。包老師講“調用過程就是復制過程的代碼,再粘貼到調用過程的地方”,我就明白了。
不過我們剛剛定義的“畫三角形”這個過程有參數,還得執行一次“參數替換”。具體地說,我們得區分兩種參數:
- 形式參數:是定義積木塊時,積木塊名后括號中的變量名。
- 實際參數:是調用積木塊時,積木塊名后括號中的表達式。
以“畫三角形”程序為例子。左邊是積木塊“畫三角形”的定義,有三個形式參數,分別是“邊長”“頂點x
”“頂點y
”。在這個積木塊內部,這三個形式參數用起來就像普通變量一樣。
右邊主程序里兩次調用“畫三角形”這個積木塊。第一次調用時實際參數分別是100、0、0,相當于把“畫三角形”這個積木塊里面的指令復制一份過來,然后把里面的形式參數“邊長”替換成實際參數100,把形式參數“頂點x
”替換成實際參數0,把形式參數“頂點y
”替換成實際參數0。
你試試看,復制、粘貼、參數替換,經過這三步之后,主程序是不是就變成了圖7-1里的代碼了呢?一模一樣啊!