###### tags: `產品開發` `FlagsBlock` # 積木程式設計名詞簡易說法 ## 變數 變數就像是一個**貼有名稱的抽屜**, 可以在裡面存放資料, 也可以隨時打開抽屜查看或是更換存放的資料, 底下就建立了一個可以放整數值的變數叫『價格』: ![](https://i.imgur.com/iCQB9mc.png) 之後就可以利用變數的名稱『價格』來取出內容, 例如當作運算時的資料: ![](https://i.imgur.com/0neqrdG.png) 就會取出變數『價格』目前存放的內容與 0.7 相乘, 算出 7 折的實際售價。 ## 陣列 陣列是特別的變數, 就像是**多個抽屜的組合櫃**, 每一個抽屜會依照排列的順序**編號**, 只要透過變數名稱與編號, 就可以查看或是更換特定抽屜內儲存的資料。底下就建立了一個名為『播放頻率』、可以放置 3 個整數的陣列: ![](https://i.imgur.com/FpULnlf.png) 之後就可以在個別的抽屜裡面放入資料, 例如: ![](https://i.imgur.com/kn1VOLy.png) 要特別留意的是抽屜的編號是**從 0 開始**, 因此雖然有 3 個抽屜, 但是最後一個抽屜的編號是 2。 你也可以在建立陣列的時候就把資料放進去, 例如: ![](https://i.imgur.com/XGnKxGH.png) 利用同樣的方式, 也可以隨時查看陣列內特定抽屜的內容, 例如: ![](https://i.imgur.com/tH2MR2m.png) 因為編號 1 號的抽屜內存放的是 277, 上述積木就會利用腳位 4 發出頻率 277 的聲音, 也就是 Re 的音。 # 函式 函式是一組積木 (程式) 的組合, 並且具有名稱, 建立好函式後, 就可以用函式的名稱來執行該組積木。例如, 以下就建立了一個可以播放 Do、Re、Mi 聲音的函式, 叫做『播抖累咪』: ![](https://i.imgur.com/UHLrhBm.png) 它組合了 3 個個別播放不同頻率聲音的積木, 往後只要使用單一個積木就可以播放 Do、Re、Mi 了: ![](https://i.imgur.com/giibZZF.png) 上面這個積木就等於執行定義在『播抖累咪』函式內的 3 個積木。 使用函式有 2 個好處, 一是只要用單一積木就可以替代原本 3 個積木才能做到的事情, 如果常常需要播放 Do、Re、Mi, 就可以**省下不斷重複相同積木的空間**;另外, 因為**函式的名稱一看就懂**, 也可以讓人很容易看出來這裡會播放 Do、Re、Mi 的聲音, 遠比原本連續 3 個播放聲音的積木還容易理解。 ## PWM (脈衝寬度調變) 控制板上的數位輸出腳位只能輸出 1(高電位) 或 0(低電位) 的訊號, 以 LED 為例, 就是只能控制亮或不亮, 而沒有實際應用中希望能夠控制的明暗變化。 為了達成上述目的, 有人就想到了變通的方法, 雖然數位腳位無法輸出 0~1 之間的訊號, 例如 0.1、0.233 等, 但如果把時間切成很小很小的片段, 然後控制每一個時間片段內高低電位所佔的時間比例, 就可以營造出 0~1 中間值的效果。這樣講好像很抽象, 以騎腳踏車為例, 同樣的時間片段裡踩踏板的時間佔比越高, 腳踏車速度就越快, 道裡是一樣的。