官术网_书友最值得收藏!

一、知識點

(一)什么是過程?

程序里有時會有重復的代碼。例如,我想畫兩個三角形,于是寫了圖7-1所示的這段代碼:

074-1

圖7-1 畫兩個三角形的程序(左)及運行結果(右)

運行這段代碼的確可以畫出兩個三角形,不過這段代碼太長了,而且有很多重復:畫第二個三角形時,又把畫第一個三角形的代碼重復了一遍,只是簡單地改動了幾個數字。

那么有沒有簡潔的方案呢?

有,“過程”就是解決這種問題的簡潔方案:我們首先把畫一個三角形這段代碼抽出來,構成一個模塊,這個模塊就叫“過程”;然后我們只需要調用這個過程兩次就可以了。

什么叫“調用”一個過程呢?調用一個過程就是“copy+paste”,就是把這個過程里面的指令復制一份,然后粘貼過來。好理解吧?如果這個過程中還有參數,會復雜一點,我們一會兒仔細介紹。

(二)在Scratch程序里怎樣實現過程?

在Scratch里,過程就是積木塊,我們通過“自制積木”創建一個新的過程,具體包括以下3個步驟。

第一步:定義過程

首先點擊左側的“自制積木”,然后點擊“制作新的積木”,輸入給過程起的名字,還有過程需要的參數。

以畫三角形為例,我們給新建的過程起名字叫“畫三角形”,然后點擊“添加輸入項 數字或文本”,為這個過程設置了三個形式參數:邊長、頂點x(即頂點的x坐標)和頂點y(即頂點的y坐標)(見圖7-2)。

075-1

圖7-2 制作新的“畫三角形”積木塊

第二步:寫過程的代碼

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

076-1

圖7-3 用“畫三角形”積木塊(左)實現畫兩個三角形的程序(右)

第三步:調用過程

這一步就簡單了。我們直接兩次使用這個“畫三角形”積木,就畫出兩個三角形了。你看,這樣代碼是不是簡潔多了?

(三)調用一個過程時到底發生了什么?

我一開始對“調用一個積木塊”時到底發生了什么很糊涂。包老師講“調用過程就是復制過程的代碼,再粘貼到調用過程的地方”,我就明白了。

不過我們剛剛定義的“畫三角形”這個過程有參數,還得執行一次“參數替換”。具體地說,我們得區分兩種參數:

  • 形式參數:是定義積木塊時,積木塊名后括號中的變量名。
  • 實際參數:是調用積木塊時,積木塊名后括號中的表達式。

以“畫三角形”程序為例子。左邊是積木塊“畫三角形”的定義,有三個形式參數,分別是“邊長”“頂點x”“頂點y”。在這個積木塊內部,這三個形式參數用起來就像普通變量一樣。

右邊主程序里兩次調用“畫三角形”這個積木塊。第一次調用時實際參數分別是100、0、0,相當于把“畫三角形”這個積木塊里面的指令復制一份過來,然后把里面的形式參數“邊長”替換成實際參數100,把形式參數“頂點x”替換成實際參數0,把形式參數“頂點y”替換成實際參數0。

你試試看,復制、粘貼、參數替換,經過這三步之后,主程序是不是就變成了圖7-1里的代碼了呢?一模一樣啊!

主站蜘蛛池模板: 承德市| 绥中县| 沙田区| 永平县| 昭苏县| 澄城县| 余庆县| 尼木县| 九寨沟县| 北安市| 汉沽区| 峨山| 黎平县| 竹溪县| 宣城市| 吴忠市| 建阳市| 车致| 郧西县| 富宁县| 获嘉县| 板桥市| 平舆县| 丰原市| 玉树县| 临江市| 光山县| 察哈| 龙门县| 安康市| 方山县| 福州市| 蓬莱市| 舞钢市| 平武县| 潞西市| 喀喇| 永州市| 阿城市| 钟山县| 利川市|