使用Scratch進行少兒程式設計
在上一篇《 ofollow,noindex"> 初識少兒程式設計 》曾提到過Scratch的指令碼標籤內包含10大模組,本文將圍繞這10大模組展開,分為兩部分:積木和程式設計概念,結合《 動手玩轉Scratch2.0程式設計―STEAM創新教育指南 》一書進行分析。
一、模組
1)運動模組
運動模組中包含移動和轉向的操作,可將角色移動到舞臺某一個具體的點,或者旋轉到某一個特定的方向。
在Scratch中0是向上,90°是向右,180°是向下,-90°是向左。
2)畫筆模組
通過設定畫筆,可以觀察到角色在移動時的軌跡。
當畫筆狀態是落下時,那麼角色移動時就會按照畫筆的屬性(顏色、大小、色度)繪出軌跡。
3)外觀模組
在外觀模組中,不但可以為讓角色說話或思考,還能給角色的造型和背景新增各種圖形特效,如旋轉、超廣角鏡頭、虛像等。不僅如此,還能設定角色的可視狀態和所在圖層。
4)聲音模組
在聲音模組中不僅能使用內建的音效,控制音量、設定節奏等,還能自己創作音樂。只需指定樂器(即音色),設定音調和拍數,就能演奏各類音樂作品,例如兒歌、流行歌曲等。
5)訊息廣播機制
訊息廣播存在於事件模組中,該機制可讓多角色的指令碼協調一致地執行。廣播的訊息會發給所有角色(包括當前廣播的角色),當角色接收到的訊息名稱和廣播的訊息名稱相同時,就觸發相應的動作。
6)偵測
偵測模組用於檢測座標、顏色或時間等資訊是否符合指定的要求。這些積木無法獨立使用,需要與控制模組中的判斷語句或者運算子模組中的比較語句配合使用。
二、程式設計概念
1)分而治之
分而治之是一種程式設計思想,當一個問題很大很複雜時,就可將該問題分解成許多小的問題,然後分別解決並獨立地測試每一個子問題,最後將這些子問題整合在一起,從而解決最初的問題。在更多模組中即可自定義積木,它和各種積木一樣都可以卡合到指令碼中,但內部的邏輯可以根據實際情況編寫。
2)資料型別
從某個角度講,應用程式的任務是處理各種資料型別(如數字、文字、影象等)的資料並生成有價值的資訊。Scratch支援3種資料型別:布林、數字和字串。布林型別僅有兩個:true和false;數字型別可以是整數或小數;字串型別是一系列字元的集合,字元包括(大寫或小寫)字母、數字以及符號(如+-&@等),它可以儲存姓名、地址、電話號碼、標題等資訊。
引數凹槽共有3種形狀:六邊形(布林)、矩形(字串)和圓角矩形(數字)。
功能積木的外觀只有兩種形狀:六邊形和圓角矩形。每一種形狀都和資料型別有關,而圓角矩形既可以代表數字型別,也可以代表字串型別。
3)變數和連結串列
變數是被命名的計算機記憶體區域。把變數想象成一個盒子,程式隨時都能存放盒子中的資料(數字和文字)。變數一個重要的用法是儲存算術表示式的結果,從而方便指令碼隨後使用。例如要計算2+4+5的結果,可以先計算2+4得到6,並記住這個結果,然後用5加上之前的結果,並得出最終結果11。
在資料模組中,可以建立變數。變數可以儲存任意型別的值,Scratch會根據上下文自動轉換資料型別。
連結串列(編輯器中翻譯為列表)是存放許多變數的一個容器,可以儲存或者獲得容器中的每一個變數的值。就像有許多梳妝檯一樣,每一個抽屜都存放著物品。動態連結串列,能在程式執行時動態地增減內部變數;數字連結串列,由純數字變數構成的連結串列,用於找出最大值、最小值、計算平均數等。連結串列的建立同樣也在資料模組中。
4)運算
在運算模組中,除了可以加減乘除之外,還包括比較運算子和邏輯運算子。比較運算子可比較兩個變數或表示式的大小關係,即大於、小於或等於。邏輯運算子包括且、或以及否定:
且:有兩個引數,如果兩個引數均為true,且的結果才為true。
或:有兩個引數,若任何一個引數為真,或操作符則返回真;僅當兩個引數均為false時,才返回假。
否定:只有一個輸入引數,當引數為真時,結果為假。
5)迴圈
迴圈告訴計算機重複地執行一條或多條語句。最簡單的迴圈是確定型迴圈,它以特定的次數重複一系列語句。除了指定重複次數之外,有時還表現為使用迴圈計數器進行控制。
在於控制模組中,Scratch支援3種類型的迴圈:無限迴圈,用條件語句控制的不確定型迴圈。