3. 拼塊說明:
initial global (name) to
本指令是用來宣告一個全域(global)
變數,後面的欄位可自由使用各種資料
形態。點擊 (name) 就可以更改這個
全域變數的名稱。全域變數可用在程式
中所有的副程式或是事件,也就是說本
指令是獨立的。
您在程式執行時都可以自由修改全域
變數值,且在程式的任何地方(包含副
程式與事件)都可讀寫它。您可隨時修
改本區域變數的值,任何參照到它的指
令也會一併更新名稱。
get
取得您已經宣告的變數值,請由下拉式
選單來選擇您要的變數。
set () to
修改您已經宣告的變數值,請由下拉式
選單來選擇您要的變數,並在後方欄位
填入您所要修改的新值。
initialize local (name) to in (do)
本指令可讓您新增一個只能用在某個
副程式中的變數,也就是區域(local)
變數。這樣一來每次該副程式被呼叫
時,其中的所有(區域)變數都會以相
5. 範例:
Hello Worlld Part2:
使用元件: Button(按鈕), Label(標籤).
Step1:
開啟一個新的名為 HelloWorld2 之 Project 並仿照 Chapter1 的 HelloWorld
範例用設計師設計放入一個 btnClick 與一個 lblHello 兩個元件。
存檔後開啟 Blocks(拼塊設計師)。
圖表 2 HelloWorld2 畫面設計
Step2:
開啟拼塊編輯器,先點選左側 Built in 裡的 Variable。選擇『initial global
(name) to』來設定一個『show_word』的全域變數。再點選左側 Built in 裡
的 Text。設定一個字串為『大家好!』並將此字串與『show_word』的全域
變數拼在一起。
Step3:
點選左側Built in 裡的Screen下的btnClick選擇when Button1.Click事件。
再點選 Screen 下的 lblHello 選擇 set Label1.Text to 指令, 代表要設定
6. Label1 的文字。
Step4:
點選左側 Built in 裡的 Variable。選擇 get 下拉選擇到 global show_word。
並將其拖拉到 lblHello 中的缺口裡。
圖表 3 HelloWorld2 Blocks 設計
Step5:
最後可以使用工具列上的 Connect(連結選單上的選項)。選擇 Emulator(模
擬器)選項來啟動模擬器。就可以看到執行的結果。
圖表 4 HelloWorld2 執行結果
7. 算數、關係運算與數學指令
舉凡+-×÷=≠等等運算指令都是位於 Blocks Editor 內的 Built in 裡的 Math
中。
圖表 5 數學 Math 指令區
拼塊說明:
number
指定一個數字常數。
以下六個指令位於同一選單中。
=、!=、<、<=、>、>=
比較兩個指定數字的等於、不等於、小
於、小於等於、大於與大於等於關係。
如果滿足回傳true,否則回傳false。
8. +
回傳兩個指定數字的和。
−
回傳兩個指定數字的差。
×
回傳兩個指定數字的積。
/
回傳前者除以後者的商。例如,1 除以
3 為 0.3333。
^
回傳 a 的 b 次方,例如 2 ^ 3 = 8
random integer
回傳一個介於指定數字之間的隨機整
數,包含上限(to)與下限(from)。參數
由小到大或由大到小不會影響計算結
果。
random fraction
回傳一個介於0和1之間的隨機小數。
random set seed
產生可重複的隨機數序列。您可設定
seed 來產生相同序列的隨機數。這在
測試會用到隨機數的程式中非常好用。
以下兩個指令位於同一選單中。
min/max
回傳指定數字中最小/最大者。
sqrt
回傳指定數字的平方根。
abs
回傳指定數字的絕對值。
9. - (negate)
回傳指定數字的相反數。
log
回傳指定數字的自然對數運算結果。
exp
回傳 e (2.71828...)的指定次方運算結
果。
round
回傳指定數字四捨五入到整數位的運
算結果。
ceiling
回傳指定數字無條件進位到整數位的
運算結果。
floor
回傳指定數字無條件捨去到整數位的
運算結果。
以下三個指令位於同一選單中。
modulo
當指定數字皆為正數時,Modulo(a,b)
計算結果與 remainder(a,b) 相同。一
般公式如下:對所有 a 與 b 而言,
(floor(a/b)× b) + modulo(a,b) = a。
例如 modulo(11, 5) 為 1;
modulo(-11, 5) 為 4;modulo(11,
-5) 為-4;modulo(-11, -5) 為-1。
Modulo(a,b) 永遠與 b 同號,但
remainder(a,b) 則永遠與 a 同號。
remainder
remainder(a, b)指令可回傳第一個數
a 除以第二個數 b 的餘數
(remainder)。例如 For example,
10. remainder(11,5)為 1;
remainder(-11, 5) 為-1;
remainder(11, -5) 為 1;
remainder(-11, -5) 為-1。
quotient
quotient(a,b)指令回傳第一個數 a 除
以第二個數 b 的商,但只取整數部分,
小數點以後忽略不計。
以下六個指令位於同一選單中。
sin、cos、tan、asin、acos、atan
回傳指定數字的正弦、餘弦、正切、反
正弦、反餘弦與反正切函數值,單位:
度。
atan2
回傳 y/x 的反正切函數值。
以下兩個指令位於同一選單中。
convert radians to degrees
將弧度轉換為角度。
convert degrees to radians
將角度轉換為弧度。
format as decimal
將原數字轉換為指定位數之小數。指定
小數位數不能為負數。若原小數位數過
多則四捨五入,反之則補 0。
is a number?
指定物件如果為數字,回傳 true,反
之回傳 false。
20. for each (number)
根據指定範圍之整數個數來決定 do 的
執行次數,可自由設定每次累加的數字
step。您可使用該變數名稱來取得它的
值。
for each (item) in list
根據指定清單的元素數目來決定 do 的
執行次數。您可使用該變數名稱來取得
它的值。
while
測試指定敘述。若為 true 則重複執行以
下動作,反之則結束此段。
if/else (呼叫型)
直接把 if / else 當作指令來呼叫。若為
true 則執行 then 區塊內容,反之則則
執行 else 區塊內容。
do
您可以將本指令當作 procedures 的
代替品,在 do 區塊中放入您所要執行
的指令,還可以回傳一個 result。
evaluate but ignore
您可以將本指令當作轉接頭來使用。把
要執行的指令接在右邊,要呼叫副程式
或是 if / else 都可以。您所要的內容都
會執行,但回傳值會自動被忽略,這在
某些情況下可能正好符合您的需求(有
21. 時候不一定允許回傳值)。
open another screen
啟動另一個畫面,填入要啟動的畫面名
稱即可。
open another screen with start
value
啟動另一個畫面,填入要啟動的畫面名
稱即可。您可藉由本指令將 A 畫面的某
些計算結果傳給 B 畫面。
get start value
取得當現在畫面啟動時所接收到的
value。
close screen
關閉現在的畫面。
close screen with value
關閉螢幕,並指定回傳結果 result。
close application
結束程式。
get plain start text
當現在畫面被啟動時,取得呼叫端所傳
來的純文字內容。如果沒有值的話,本
指令結果為空字串。如果您的 app 有多
個畫面,請使用 get start value 指令而
非本指令。
close screen with plain text