結構化程式設計(8)


重複(迴圈)結構

Scratch重複積木

說明

重複無限次(無窮迴圈)

條件式迴圈(重複次數未定)

範例

汽車開到路口正好遇到信號燈是紅燈,重複直到「信號燈變成綠燈」,汽車才能通過路口繼續行駛或轉彎


計次循環(迴圈LOOP)

實作1:以計次迴圈(for loop)計算1+2+3+......+100的總和(累加和)

高斯數學家的解法

圖片來源:https://zhuanlan.zhihu.com/p/53205895

2×(1+2+...+100) =101×100=100100
1+2+...+100 =100100÷2=5050

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.點自己班的連結.輸入各班密碼

0801

0813

0816

人工智慧程式練習

運算思維大挑戰

遊戲來源:https://mtf.sjps.ntpc.edu.tw/friber108/