2017-05-12 進學國小 3D 建模與列印課程

資訊教育

進學國小 3D 建模與列印課程

2017-05-10 Scratch 運用數字分堆學習條件判斷

資訊教育

在 Scratch 中我們可以試著將 0~9 的數字分成三堆,分別是:

  • 小於 5
  • 等於 5
  • 大於 5

試著用條件判斷,將數字正確分至上述三堆中。

方法一

方法二

2017-05-09 Scratch 趣味創作掃描影印機

資訊教育

Scratch 趣味創作掃描影印機

類似「全自動電子式身高體重計」,使用掃描線 (scan line) 偵測主角的外框邊緣,分別從「左上」與「右下」兩角落向原點掃描。偵測主角範圍,複製像素。

請使用 Turbo Mode。按 Shift 加綠色旗子。

https://scratch.mit.edu/projects/159809020/

2017-05-09 Scratch 使用掃描線偵測主角外框邊緣

資訊教育

Scratch 使用掃描線偵測主角外框邊緣

類似「全自動電子式身高體重計」,使用掃描線 (scan line) 偵測主角的外框邊緣,分別從「左上」與「右下」兩角落向原點掃描。

https://scratch.mit.edu/projects/159763865/

2017-05-08 Scratch 基礎概念,如果..否則..我的條件判斷正確嗎?

資訊教育

Scratch 基礎概念,如果..否則..我的判斷正確嗎?

Scratch 中使用「如果..就」可以做簡單的條件判斷,遇到更複雜的條件判斷時請使用「如果..否則」。

電子書

http://odata.tn.edu.tw/ebooktagapi/Intro/Index2?id=cd06efa12fd843b3b1912f554218dbe7

以下左右兩側的條件判斷程式,有什麼差別?左側的程式有問題嗎?

       

2017-05-07 Scratch遊戲設計─進階終極密碼猜數字

資訊教育

Scratch遊戲設計─進階終極密碼猜數字

電子書

http://odata.tn.edu.tw/ebooktagapi/Intro/Index2?id=d8a7052015fb4fb5bf6e2f294228775f

藉由猜數字遊戲的設計,學會程式語言的基本概念。

  1. 輸出入互動
  2. 二元條件判斷
  3. 重複結構(迴圈)
  4. 變數
  5. 隨機
  6. 字串相接
  7. 條件迴圈(計數迴圈)
    轉換Scratch常用的「無限迴圈」至文字程式語言常用的「條件迴圈」,增加程式的彈性。
  8. 自訂積木(Procedure)
    運用結構化程式語言中的子程序,將特定功能獨立出來,有條理的解釋各部分功能。
  9. 正確的條件判斷(巢狀判斷)
    避免使用初學者多個單一的 if-then,而改用巢狀 if-then-else 較為簡潔有效。

https://scratch.mit.edu/projects/159453747/

2017-05-03 Scratch 中避免過度使用「廣播訊息」形成 Jump 與 Goto

資訊教育

過度使用「廣播訊息」的方式來控制程式流程,將失去 Scratch 原有的結構化程式語言的特性。破壞既有程式的流程,不易除錯。

交錯使用「廣播訊息」來達成重複結構,如此將形成 goto 語意。

以下範例,使用廣播訊息方式來達到重複結構,遞增數字。非建議的做法。

 

https://scratch.mit.edu/projects/158596210/

2017-05-01 Scratch遊戲設計─終極密碼猜數字

資訊教育

Scratch遊戲設計─終極密碼猜數字

電子書

http://odata.tn.edu.tw/ebooktagapi/Intro/Index2?id=73db7ba8d83f43c5bfba754c7320907f

藉由猜數字遊戲的設計,學會程式語言的基本概念。
1.輸出入互動
2.二元條件判斷
3.重複結構(迴圈)
4.變數
5.隨機
6.字串相接

https://scratch.mit.edu/projects/158238924/

2017-04-25 自製校園 360 街景圖

2017-04-22 Scratch 中三種常見的重複執行 (Repeated Execution)─迴圈 (Loop)

資訊教育

Scratch 中重複執行的流程結構─迴圈(Loop)有以下三種類型:

  1. 無限迴圈 (Repeated Execuction)─重複執行
    這是 Scratch 中最常見,也是課程中最基礎的重複方式。當我們「未設想」何時要結束程式,多會使用「無限迴圈」,多數個體(如電腦、機器)在處理外界訊息,也是一直不斷的重複接收輸入和反應,而這個無限的大迴圈也就是 Message Loop。如 mBot (Arduino) 中的 loop()。

    上面的程式會重複執行「拍手」,因為沒有任何限制,所以只要有足夠的資源(時間和空間,電力),就可以無限制的重複執行程式。無限迴圈因為不會結束執行,只能重複其內的指令「拍手」,所以 Scratch 的設計是後面無法銜接任何的積木方塊。比較下面的左右兩段程式,左邊的程式無法銜接「歡呼」指令。

    無限迴圈在此有些不便,如未能充份瞭解也容易寫出有 bug 的程式,而不易發覺。以下範例,原先是要拍手10次,但僅拍手1次,為什麼呢?猜猜看。
  2. 有限迴圈 (Bounded Repeated Execution)
    有限次數的重複執行是多數程式語言 (text-based programming language) 的基礎結構,在 Scratch 中反而容易被忽略。Scratch 中省去了使用變數來紀錄次數、遞增變數與條件判斷等複雜控制,我們可以簡單使用「重複幾次」來執行特定次數的指令,如下面程式會執行恰好10次的「拍手」,不多也不少。有確定次數與精確計算的需求,那麼使用「重複幾次」的所造成的結果是可以預期與設想的。

    和前例有 bug 的程式相比,以下全部使用「重複幾次」,對於「拍手」與「歡呼」指令的總次數都是可以預先算出來的,程式的流程規劃相對是比較簡單明確。
  3. 條件迴圈 (Conditional Repeated Execution)
    這是 Scratch 中相對比較進階的概念,當中包含了「重複執行」(Repeated Execution) 與「條件判斷」(Conditional Execution),甚至是變數 (Variables) 的概念。以下,我們以口語方式來瞭解這個結構的意圖。
    如下圖:
  • 現在變數「放暑假」的內容設定為「假」,也就是暑假還沒到來
  • 重複執行「上學」,直到「『放暑假』的內容等於『真』」;(直到世界末日發生,我們都要不停地重複努力生活)
    因為「放暑假」的內容不為「真」,所以還是繼續重複執行「上學」
  • 如果,一等到「放暑假」的內容為「真」,就會滿足「綠色的條件判斷」,那麼這個迴圈就會結束而離開,不再重複執行。而「單車環島」的指令就會執行,環島去吧!

以下,利用「條件迴圈」來達成「無限迴圈」​,但更具有彈性。​​​​​​只要隨時改變變數 stop 的內容,就可以結束離開「重複執行」,有機會「歡呼」。

閱讀完這麼多的內容,為自己執行一個「歡呼」指令吧!

更多消息