子主題: 叫貓咪數數
討論: 數數規則? 電腦如何數數? (分組討論、發表或教師提問)
電腦如何知道要數到哪裡?
參考檔案: 叫貓咪數數.sb2
演算法: 從1數到n
解法一:
※從1數到4: 從多個積木,到運用迴圈簡化
討論:
變數作用? 變數是主記憶體一塊空間,可以用來存放資料,可取出、歸0、改變(放入新的、變動的內容)
迴圈作用?要電腦重複執行相同步驟/指令/積木,但數值要改變
固定無彈性 許多重複積木且無彈性 運用重複執行(迴圈)減少、積木數
※N由操作者決定(輸入積木),從1數到N
N值由玩家輸入,且存放在
輸入數值為5,從1數到5,如下
主要積木說明:
輸入積木:
輸入數值存放在
建立變數,設定變數i初值:
改變數i數值: (i加1,如i原本為5,改變1,會變成6)
改變數i數值: (i減1)
利用字串組合將數數過程連接起來,放入變數msg:
輸出數數過程:
討論: 如何數n~m (例如4到11或 11到3 )?如何只數偶數(例如2,4,6,8,….)或奇數?
評量: 實作數偶數 或 數n~m
挑戰: 由大往下數m~n
□Unit 3-2: 1+2+....+n
子主題: 叫貓咪算數:1+2+....+n
討論特性: 電腦如何累加? (分組討論、發表或教師提問)
參考檔案: 叫貓咪數數.sb2
演算法:
解法:
變數i的初值為0
~~~total~~~
輸入數值,且放入變數n
重複n次
{
i <- br="" i="">=i + 1->
<- br="" i="">total = total + i->
<- br="" i=""><-total br="" i="">}
輸出total
實作1:
討論:如何追蹤圈內變數內容的變化?
內容為設5,迴圈中i及total變數內容變化
回合 i total
進入迴圈前 0 0
第1回合 1 1 Total<-0 br=""> -0>-total>->
<- br="" i=""><-total br="" i=""><-0 br="">第2回合 2 3 Total<-1 br=""> -1>-0>-total>->
<- br="" i=""><-total br="" i=""><-0 br=""><-1 br="">第3回合 3 6 Total<-3 br=""> -3>-1>-0>-total>->
<- br="" i=""><-total br="" i=""><-0 br=""><-1 br=""><-3 br="">第4回合 4 10 Total<-6 br=""> -6>-3>-1>-0>-total>->
<- br="" i=""><-total br="" i=""><-0 br=""><-1 br=""><-3 br=""><-6 br="">第5回合 5 15 Total<-10 br=""> -10>-6>-3>-1>-0>-total>->
<- br="" i=""><-total br="" i=""><-0 br=""><-1 br=""><-3 br=""><-6 br=""><-10 br="">實作2:改變輸出訊息(最後符號為+或=)
討論:上述1+2+…+n,有無更快做法?(但本程式在於訓練迴圈方法)
(1+n)*n/2-10>-6>-3>-1>-0>-total>->
沒有留言:
張貼留言