結構化程式設計(8)
重複(迴圈)結構
Scratch重複積木
說明
重複無限次(無窮迴圈)
條件式迴圈(重複次數未定)
範例
汽車開到路口正好遇到信號燈是紅燈,重複直到「信號燈變成綠燈」,汽車才能通過路口繼續行駛或轉彎
計次循環(迴圈LOOP)
實作1:以計次迴圈(for loop)計算1+2+3+......+100的總和(累加和)
高斯數學家的解法 圖片來源:https://zhuanlan.zhihu.com/p/53205895 2×(1+2+...+100) =101×100=100100 |
1.問題解析
直覺做法
累加和
就是拿上一個結果和下一個數相加得到一個新的和,然後再拿這個和與下一個數相加,這是很有規律的
我們使用迴圈(重複)過程。為了完成這個迴圈相加,我們需要使用兩個變數:一個是數字,一個是和,計算算式如下:
和 ←和+數字 |
數字是一個變數,每執行一次要增加1,算式=號右邊的和就是數字加之前的所有數之和,加上數字之後的結果成為一個新的和,然後再用這個和與下一個數進行相加,又的一個新的和,如此循環,一直到數字變為100為止。
數字 ← 數字+1 |
2.演算法
建立兩個變數 i(記錄1到100變化的加數) 及S(記錄累加的總和)
以虛擬碼的寫法可以表示為
步驟1:i←1,s←0(設定數字為1.總和為0==>初始化) 。 步驟2:s←s+i(總和設為總和+數字==>累加和) 。 步驟3:i←i+1(數字設為數字+1==>規律性) 。 步驟4:假如i大於100就結束並印出總和s,否則返回重新執行步驟2。 |
Tracing an algorithm (算法追蹤驗算)
i與s變數的數值變化如下表
i |
s |
1 |
1 |
2 |
3 |
3 |
6 |
4 |
10 |
5 |
15 |
|
|
|
|
100 |
5050 |
程式碼參考(經典程式)
實作2:數學專案-以計次迴圈(for loop)計算1到100之間的偶數和(2+4+6+8+......100=?)
演算法
判斷i是否為偶數(i除以2的餘數=0)
那麼就執行累加和s←s+i
若不是就執行i←i+1
最後印出偶數和s
程式提示:
程式碼參考
自由探索
實作3:數學專案-以計次迴圈(for loop)計算1+2+3+...N的和
程式執行結果:
演算法
程式碼參考
作業上傳到雲端
1.點自己班的連結.輸入各班密碼
人工智慧程式練習
運算思維大挑戰
遊戲來源:https://mtf.sjps.ntpc.edu.tw/friber108/