Docy

數學與邏輯 1

此章節中,包含《迴圈》《邏輯》《函式方塊》《變數》分類下的程式方塊內容。
👉 有關《數學式》、《文本》與《列表》分類下的程式方塊內容,請閱讀:數學與邏輯 2

📎 《迴圈》

重複“當/直到” _ ,執行+

  • 定義重覆 (迴圈)

在編輯程式的過程中,常常需要某一些特定的指令連續地重複執行。此時會使用「重覆」的指令來簡化程式碼。重覆_次、永久重覆、重覆當,執行等屬於重覆 (迴圈) 的方塊。

  • 說明

此方塊的下拉選單有兩個選項,第一個選項是「重複 當」,表示「當發生某些事情,迴圈就會啟動」,第二個選項是「重複直到」,表示「直到發生某些事情,迴圈就會停止」。

  • 基本操作

點擊方塊內的下拉選單,選擇「重複 當」或「重複直到」。把啟動或停止重複的條件拖拉至缺口裡,把需要重複的流程拖拉至「執行」的缺口裡。

  • 範例
    1. 點擊左側選單「變數」的目錄,點擊「建立變數」,設定變數名稱為「a」,將「賦值 成」拖拉到畫布中。
    2. 點擊左側選單「迴圈」的目錄,將「重複當,執行」拖拉到「賦值 成」的下方。
    3. 點擊左側選單「數學式」的目錄,將「隨機取數」拖拉到「賦值 成」的缺口;將「0是偶數」拖拉到「重複 當」的缺口。
    4. 點擊左側選單「變數」的目錄,把變數「a」取代「0」;將「是偶數」更改為「是奇數」。
    5. 點擊左側選單「動作」的目錄,把兩個左肩上抬拖拉到「執行」的缺口。上抬角度分別為「100°」和「」。
    6. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

‼️ 注意事項:迴圈目錄下的重複塊通常用來執行 blockly 自帶的方塊(如邏輯、有返回值函式、數學式、文本、列表等塊),要運行訂製塊(如控制動作、畫布、聲音、燈光的方塊),請使用控制目錄下的重複、永久重複方塊。

循環計數 _ 從 _ 到 _ 間隔數_,執行+

  • 說明

類似「重複執行」的進階版,差別在於「循環計數」使用了一個變數,透過改變這個變數的數值,來決定重複幾次、如何重複以及重複的間隔。

  • 基本操作

點擊方塊內的下拉選單,重新命名變數,變更數學式的數字或方塊。將需要執行此循環的方塊拖拉進「執行」的缺口裡。


    1. 點擊左側選單「迴圈」的目錄,將「循環計數,執行」拖拉到畫布中。
    2. 點擊下拉選單,選擇重新命名變數為「雙數」,並將後面的數字改為從「2」到「100」,間隔數「2」。
    3. 點擊左側選單「聲音」的目錄,將「說 “__”」拖拉到畫布中。
    4. 點擊左側選單「變數」的目錄,將「雙數」這個變數拖拉進「說 “__”」的缺口裡。再將其放在「執行」裡。
    5. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

取出每個_自清單,執行 +

  • 說明

此方塊會取出清單裡的內容,為清單建立變數,並執行清單中的程式。

👉🏻 關於列表,請查看 這一頁

  • 基本操作

點擊左側選單「列表」的目錄,選擇關於建立清單的方塊,並建立清單項目,最後執行清單中的程式。

  • 範例
    1. 重新命名變數為「數字」。
    2. 點擊左側選單「列表」的目錄,將「使用這些值建立清單」拖拉到方塊的缺口,並點擊左上方的「齒輪」,將「項目」拖拉到「清單」裡。
    3. 點擊左側選單「數學式」的目錄,將 個「0」拖拉到「使用這些值建立清單」的缺口,並從上到下輸入數字「到 4」。
    4. 點擊左側選單「聲音」的目錄,將「說 ”__”」拖拉到「執行」的缺口。
    5. 點擊左側選單「變數」的目錄,將「數字」這個變數拖拉進「說 “__”」的缺口裡。
    6. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

中斷循環/ 繼續下一個循環

  • 說明

所有的迴圈的行為,都可以透過「中斷循環」積木來中斷;下拉選單還有另外一個選項是「繼續下一個循環」。

📒  補充:這個積木只能在迴圈裡使用,如果放在回圈外,就無法正常使用。

  • 範例
    1. 先完成上一個案例(取出每個_自清單,執行的案例),延續此案例。
    2. 將「說數字」先拖拉出「執行」外。
    3. 點擊左側選單「邏輯」的目錄,將「如果,執行」拖拉到「執行」裡,並點擊左上方的「齒輪」,將「否則」拖拉到「如果」的下方。
    4. 點擊左側選單「邏輯」的目錄,將「’__’  =  ’__’ 」拖拉到「如果」的缺口,並改為「 數字 > 3 」。
    5. 把「中斷循環」拖拉進「執行」的缺口,把「說數字」拖拉進「否則」的缺口
    6. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

📎 《邏輯》

如果+,執行+

  • 說明

「如果」是「判斷條件」,「執行」是「執行內容」,當程式滿足判斷條件時,就會執行對應的內容。

  • 基本操作

點擊方塊內左上方的「齒輪」,可以新增邏輯判斷的條件。邏輯判斷條件有三種:「如果」必須在第一層,「否則如果」則在中間,「否則」一定在最下方。

當沒有滿足「如果」和「否則如果」的條件,就會執行「否則」的內容。

  • 範例
    1. 點擊左側選單「變數」的目錄,點擊建立變數,新增變數名稱為「分數」,並將「賦值分數成」拖拉到畫布中。
    2. 點擊左側選單「數學式」的目錄,將「隨機取數」拖拉進「賦值分數成」的缺口。
    3. 將「如果,執行」拖拉到「賦值分數成」的下方,點擊左上方的「齒輪」,將「否則」拖拉到「如果」的下方。
    4. 點擊左側選單「邏輯」的目錄,將「’__’  =  ’__’ 」拖拉進「如果」的缺口,並改為「分數 > 60」。
    5. 點擊左側選單「聲音」的目錄,將兩個「說 __ 」拖拉到畫布中,一個輸入「及格」,拖拉進「執行」的缺口;另一個輸入「不及格」,拖拉進「否則」的缺口。
    6. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

’__’ = ’__’

  • 定義-執行參數

左側有一個突起,可以在左側連接其他方塊,作為其他方塊執行數據的方塊。參數可以是一個變數、字符串、數據、列表、有返回值的函式等類型,列如在目錄:「邏輯」、「數學式」、「文本」、「列表」裡的多數方塊都是屬於執行參數。

  • 說明

此方塊為「判斷條件」的一種,條件式會放在此方塊的缺口裡,提供不同情境的邏輯判斷,判斷的條件分為:等於 (=)、不等於 (≠)、小於 (<)、小於等於 ()、大於 (>)、大於等於 ()

  • 範例
    1. 點擊左側選單「變數」的目錄,點擊建立變數,新增變數名稱為「分數」,並將「賦值分數成」拖拉到畫布中。
    2. 點擊左側選單「數學式」的目錄,將「隨機取數」拖拉進「賦值分數成」的缺口。
    3. 點擊左側選單「聲音」的目錄,將「說 ”__” 」拖拉到「賦值分數成」的下方,並將「分數」這個變數拖拉進「說 “__”」的缺口裡。
    4. 點擊左側選單「邏輯」的目錄,將「如果,執行」拖拉到「說分數」的下方,將「’__’  =  ’__’ 」拖拉到畫布中,並改為「分數 < 60」,拖拉進「如果」的缺口裡。
    5. 點擊左側選單「聲音」的目錄,將「說 __ 」拖拉進「執行」的缺口裡,並輸入「不及格」。
    6. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

’__’ 且 ’__’

  • 定義-邏輯運算子

「邏輯運算子」把語句連接成更複雜的語句。例如:假設有兩個邏輯命題,分別是「颱風來襲」和「我在睡覺」,我們可以將它們組成複雜命題「颱風來襲,並且我在睡覺」或「如果颱風來襲,那麼我在睡覺」。將兩個語句組成的新的語句或命題,稱「邏輯運算子」,又稱複合語句或複合命題。

  • 說明

邏輯運算子為邏輯判斷提供了更彈性的判斷條件,當中包含了「且」與「或」,如果使用「且」,兩端判斷條件的空格必須都同時滿足,才會執行往下的流程,如果是使用「或」,則只要其中一個判斷條件的空格滿足就會執行往下的流程。

📒 補充:通常當邏輯判斷裡出現「如果否則」的時候,就一定會用到「邏輯運算子」。

  • 範例
    1. 點擊左側選單「變數」的目錄,點擊建立變數,新增變數名稱為「分數」,並將「賦值分數成」拖拉到畫布中。
    2. 點擊左側選單「數學式」的目錄,將「隨機取數」拖拉進「賦值分數成」的缺口裡。
    3. 點擊左側選單「聲音」的目錄,將「說 ”__” 」拖拉到「賦值分數成」的下方,並將「分數」這個變數拖拉進「說 “__”」的缺口裡。
    4. 點擊左側選單「邏輯」的目錄,將「如果,執行」拖拉到「說分數」的下方,並點擊左上方的「齒輪」,將兩個「否則,如果」跟一個「否則」拖拉到「如果」的下方。
    5. 點擊左側選單「邏輯」的目錄,將「’__’  =  ’__’ 」拖拉到畫布中,並改為「分數 = 0」,拖拉進「如果」的缺口,再點擊左側選單「聲音」的目錄,將「說__」拖拉到畫布中,並輸入「0分」,拖拉進第一個「執行」的缺口裡。
    6. 將兩個「’__’  =  ’__’ 」分別拖拉進「’__’    ’__’」的空格。前者改為「數字 > 0」,後者改為「數字 < 60」,並拖拉進第一個「否則如果」的缺口,再將「說__」拖拉到畫布中,並輸入「不及格」,拖拉進第二個「執行」的缺口裡。
    7. 將兩個「’__’  =  ’__’ 」分別拖拉進「’__’    ’__’」的空格。前者改為「數字 ≥ 60」,後者改為「數字 < 99」,並拖拉進第二個「否則如果」的缺口,再將兩個「說__」拖拉到畫布中,並輸入「及格」,拖拉進第三個「執行」的缺口,輸入「滿分」,拖拉進「否則」的缺口裡。
    8. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

  • 說明

「非」的方塊就如字面一樣,表示「不是」,通常會和「真或否」或「空值」的方塊搭配使用。

  • 範例
    1. 點擊左側選單「變數」的目錄,點擊建立變數,新增變數名稱為「數字」,並將「賦值數字成」拖拉到畫布中。
    2. 點擊左側選單「數學式」的目錄,將「隨機取數」拖拉進「賦值數字成」的缺口。
    3. 點擊左側選單「聲音」的目錄,將「說 ”__” 」拖拉到「賦值數字成」的下方,並將「數字」這個變數拖拉進「說 “__”」的缺口裡。
    4. 點擊左側選單「邏輯」的目錄,將「如果,執行」拖拉到「說數字」的下方,並點擊左上方的「齒輪」,將「否則」拖拉到「如果」的下方。
    5. 將「非」拖拉進「如果」的缺口,將「是偶數」拖拉進「非」的缺口,並將「數字」這個變數拖拉進「是偶數」的缺口裡。
    6. 將兩個「說 __ 」拖拉到畫布中,分別輸入「是奇數」和「是偶數」。前者拖拉進「執行」的缺口裡,後者拖拉進「否則」的缺口裡。
    7. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

  • 說明

此方塊有下拉選單,可選擇「真」或「假」。主要表示 ture false 兩個值,讓判斷的時候在數字、文字之外,多一些判斷的條件,同時也可以將 ture false 提交給變數。

  • 範例
    1. 點擊左側選單「變數」的目錄,點擊建立變數,新增變數名稱為「i」。
    2. 點擊左側選單「邏輯」的目錄,將「如果,執行」拖拉到畫布中,並點擊左上方的「齒輪」,將「否則」拖拉到「如果」的下方。
    3. 將「’__’  =  ’__’ 」拖拉進「如果」的缺口裡,並改為「 i = 假 」。
    4. 將「賦值 成」拖拉進「執行」的缺口裡,將「真」拖拉進「賦值 成」的缺口裡。
    5. 點擊左側選單「控制」的目錄,將「等待機器人被摸頭」拖拉到「賦值 成」的下方。點擊左側選單「動作」的目錄,將「左肩上抬 90°」拖拉到「等待機器人被摸頭」的下方。
    6. 將「賦值 成」拖拉進「否則」的缺口裡,將「假」拖拉進「賦值 成」的缺口裡。
    7. 將「等待機器人被摸頭」拖拉進「否則」的缺口裡,將「左肩上抬 180°」拖拉到「等待機器人被摸頭」的下方。
    8. 將以上的流程拖拉進「永久重覆」的缺口裡。
    9. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

  • 說明

當遇到某個變數或是某個數值需要變成空值(null)的時候,就可以使用「空」這個方塊,用法和「真或否」的用法類似。

  • 範例
    1. 先完成上一個案例(「真」的案例),延續此案例。
    2. 將「 i = 假 」改為「 i = 空」。
    3. 將「賦值 成真 」改為「 賦值 成非空」。
    4. 將「賦值 成假 」改為「 賦值 成空」。
    5. 選擇播放的設備-我的機器人(或模擬器)。

測試,如果為真,如果為假

  • 定義-三元邏輯運算子

「三元邏輯運算子」是針對只有「兩種條件」,並針對根據條件傳回「兩個運算式」的其中一個。即根據條件判斷,從兩種條件選擇其中一種執行。

  • 說明

如果兩種條件,就可以透過元邏輯運算子來輕鬆實現,可以使用比較少的積木完成同樣的結果。


    1. 點擊左側選單「變數」的目錄,點擊建立變數,新增變數名稱為「成績」,將「賦值成績成」拖拉到畫布中。
    2. 點擊左側選單「數學式」的目錄,將「隨機取數」拖拉進「賦值數字成」的缺口裡。
    3. 點擊左側選單「聲音」的目錄,將兩個「說 ”__”」拖拉到「賦值成績成」的下方。
    4. 點擊左側選單「變數」的目錄,將「成績」拖拉進第一個「說 ”__”的缺口裡,並將「測試,如果為真,如果為假」拖拉進第二個「說 ”__”的缺口裡。
    5. 點擊左側選單「邏輯」的目錄,將「’__’  =  ’__’ 」拖拉進「測試」的缺口,並改為「 成績 > 60 」,並點擊左側選單「文本」的目錄,將兩個「“_”」拖拉進「如果為真」和「如果為假」的方塊,並改為「及格」和「不及格」。
    6. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

判斷是否包含文字

  • 說明
    可以用來判斷該字串或語音中 包不包含指定的文字內容

  • 範例出一個題目為「包含虎的吉祥話」,並判斷機器人接收到的語音中是否包含虎,並設定「如果有」執行答對的對話,「否則」執行答錯的對話

轉換進位

  • 說明
    能把數字轉換為二進位、八進位、十六進位的文字

  • 範例

    搭配「開啟密語」設計一個讓凱比幫你轉換進位制的腳本。說出一個數字,並將該字串轉為「變數」並讓「進位制」方塊進行轉換,最後將進位制方塊接在「說」,就可以讓機器人講出轉換結果囉

📎 《函式方塊》

到功能1,+

  • 定義-函式體

函式體指函式方塊目錄中,上下都無法連接其他地方的方塊,函式體會擁有一個執行體,在執行體中可以含其他塊的方塊。

  • 說明

「函式方塊」可以將許多重複會用到的流程包裝成一個函式。 使用「到功能 1」並不會執行函式,需要建立完「到功能 1」缺口裡的流程後,在「函式方塊」的目錄裡,就會出現對應的方塊(預設名稱為「功能 1」),要使用這方塊才表示執行這個函式。

  • 基本操作

可以更改「功能 1」的名稱,並點擊左上方的「齒輪」,將「輸入名稱」拖拉進「輸入」的缺口裡。

  • 範例
    1. 點擊左側選單「函式方塊」的目錄,將兩個「到功能 1」拖拉到畫布中,並將「功能 1」改為「手部動作」,將「功能 2」改為「頭部動作」。
    2. 點擊左側選單「動作」的目錄,將兩個「左肩上抬」拖拉進「到手部動作」的缺口裡,上抬角度分別改為「90°」與「」。
    3. 點擊左側選單「動作」的目錄,將兩個「頭部垂直轉動」拖拉進「到頭部動作」的缺口裡,轉動角度分別改為「20°」與「」。
    4. 點擊左側選單「函式方塊」的目錄,將兩個「手部動作」和「頭部動作」拖拉到開始下方。
    5. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

到功能1 +,返回 +

  • 定義-返回

有「返回」字樣,並且在右端連接一個參數塊的函式體所產生的函式塊,可以作為其他塊的執行參數,這個參數表示的數據就是返回值。有返回值的函式體只能包含 blockly 自帶的塊,而沒有返回值的函式體可以包含 blockly 塊和訂製塊。

  • 說明

與「到功能 1」的方塊相似,但此方塊加入帶有返回的函式,可以讓執行的函式,變成單純的數值。

  • 基本操作

可以更改「功能 1」的名稱,並點擊左上方的「齒輪」,將「輸入名稱」拖拉進「輸入」的缺口裡,亦可以選擇是否允許陳述式。

  • 範例
    1. 點擊左側選單「函式方塊」的目錄,將「到功能 1,返回」拖拉到畫布中,點擊左上方的「齒輪」,將兩個「輸入名稱」拖拉進「輸入」的缺口裡,並選擇不允許陳述式。
    2. 點擊左側選單「數學式」的目錄,將「1 + 1」拖拉進「返回」的缺口裡。
    3. 點擊左側選單「變數」的目錄,將「x」和「i」拖拉到畫布中,並將「1 + 1」改為「x + i」。
    4. 點擊左側選單「聲音」的目錄,將「說 “_”」拖拉到「開始」的下方。
    5. 點擊左側選單「函式方塊」的目錄,將「功能 1與:」拖拉進「說 “_”」的缺口裡。
    6. 點擊左側選單「數學式」的目錄,將兩個數字方塊拖拉到畫布中,數字改為「1」和「2」,分別拖拉進「x」和「i」的缺口裡。
    7. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

如果 +,返回 +

  • 說明

此方塊必須配合「函式方塊」使用,並必須帶有「返回值」的方塊,意思就是此方塊必須放在「到功能1,返回」裡才能使用。主要作為判斷要回傳什麼數值時使用。

  • 基本操作

點擊左上方的「齒輪」,將「輸入名稱」拖拉進「輸入」的缺口裡。並將「到功能 1,返回」拖拉「如果,返回」的缺口裡。

  • 範例
    1. 點擊左側選單「函式方塊」的目錄,將「如果,返回」及三個「到功能 1,返回」拖拉到畫布中。
    2. 點擊左上方的「齒輪」,將兩個「輸入名稱」拖拉進「輸入」的缺口裡,並三個「到功能 1,返回」拖拉「如果,返回」的缺口裡。
    3. 點擊左側選單「邏輯」的目錄,將三個「’__’  =  ’__’ 」分別拖拉進「如果」的缺口裡。
    4. 點擊左側選單「變數」的目錄,將「x」和「i」拖拉到畫布中。將三個「’__’  =  ’__’ 」分別改為「x =  i」、「x <  i」、「x >  i」。
    5. 點擊左側選單「文本」的目錄,將「“__”」拖拉進「返回」的缺口裡,並分別改為「a」、「b」、「c」。
    6. 點擊左側選單「聲音」的目錄,將三個「說 “__”」拖拉到畫布中,並將三個「功能1與:」分別拖拉進「說 “__”」的缺口裡。
    7. 點擊左側選單「數學式」的目錄,將 個「0」拖拉進「x」「i」的缺口裡,並分別改為「1」「1」、「1」「0」、「0」「1」。
    8. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

📎 《變數》

賦值 _ 成

  • 定義-變數

變數,也稱作變量,使用變數前,會賦予變數一個名稱,並用變數來儲存文字、數字、列表等內容,例如「變數 a 」等於「文字」,它型別就是「字串」,如果再把「變數 a」 等於「數字」,它的型別就會變成「數字」。

為什麼要使用變數呢?因為在程式編輯常常會遇到許多「重複」的部分,用變數裝載這些重複的部分,就能很簡單的進行「一次性」新增、刪除或修改動作。

  • 說明

要使用左側選單「變數」的目錄裡的方塊,需要先點擊「建立變數」,輸入新變數的名稱。假設設定一個變數 a,在左側變數的目錄就會看到變數 a 相關的方塊。

  • 基本操作

點擊「建立變數」,輸入新變數名稱後,在「變數」的目錄將「賦值_成」拖拉到畫布中。

  • 範例
    1. 點擊左側選單「變數」的目錄,點擊「建立變數」,輸入新變數名稱為「a」,將「賦值 成」拖拉到畫布中。
    2. 點擊左側選單「數學式」的目錄,將「0」拖拉進「賦值 成」的缺口裡,並改為「1」。
    3. 點擊左側選單「聲音」的目錄,將「說 “_”」拖拉到「賦值 成」的下方,並將「a」這個變數拖拉進「說 “__”」的缺口裡。
    4. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。

修改 _ 自 ” _ “

  • 說明

要使用左側選單「變數」的目錄裡的方塊,需要先點擊「建立變數」,輸入新變數的名稱。假設設定一個變數 a,在左側變數的目錄就會看到變數 相關的方塊。

在使用此方塊前,必須先賦值變數,因為此方塊可以修改之前所建立的變數,此方塊表示「讓變數的值改變多少」,假設原本變數 的值為 1,使用「修改 自 1」之後,這個變數就會變成 2,同理,如果「修改  -1」,那麼這個變數就會變成 0

  • 基本操作

點擊「建立變數」,輸入新變數名稱,在「變數」的目錄將「賦值_成」拖拉到畫布中,並賦予數值後,再將「修改_自」拖拉到畫布中,並輸入想修改的數值。

  • 範例
    1. 先完成上一個案例(「賦值_成」的案例),延續此案例。
    2. 點擊左側選單「變數」的目錄,將「修改 自 1」拖拉到「說 a」的下方。
    3. 複製一個「說 a」,拖拉到「修改 自 1」的下方。
    4. 將流程拖拉到「開始」的下方後,選擇播放的設備-我的機器人(或模擬器)。
Share this Doc
CONTENTS