結構化程式設計(8)


重複(迴圈)結構

Scratch重複積木

說明

重複無限次(無窮迴圈)

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

範例

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


計次循環(迴圈.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:以計次迴圈(for loop)計算1+2+3+......+100的總和(累加和)

1.問題解析

何謂累加和?

說明

就是拿上一個結果和下一個數相加得到一個新的和,然後再拿這個和與下一個數相加,這是很有規律性的,電腦最適合處理此類問題

我們使用迴圈(重複)過程。為了完成這個迴圈相加,我們需要使用兩個變數:一個是數字,一個是,計算算式如下:

和 ←和+數字

數字是一個變數,每執行一次要增加1,算式=號右邊的和就是數字加之前的所有數之和,加上數字之後的結果成為一個新的和,然後再用這個和與下一個數進行相加,又的一個新的和,如此循環,一直到數字變為100為止。

數字 ← 數字+1

2.演算法

3.程式碼參考(經典程式)

(1)建立變數-和(s).數字(i)

作用:變數 i(記錄1到100變化的加數) 及s(記錄累加的總和)

 

 

(2)變數初始化

s←0(設定總和為0)

i←1(設定數字為1)

(3)提示此程式的作用

(4)利用重複積木及變數運算實現累加和

s←s+i(總和設為總和+數字==>累加和 )

i←i+1(數字設為數字+1==>規律性)

5.輸出累加和


實作2:數學專案-以非計次迴圈計算1+2+3+...N的和

演算法

參考積木

使用重複直到積木

程式測試

N=999


思考問題-如何計算1+2+3+.....+N的偶數和

演算法思維:

判斷i是否為偶數(i除以2的餘數=0)

那麼就執行累加和s←s+i

若不是就執行i←i+1

程式測試

N=999


作業上傳到雲端

1.點自己班的連結.輸入各班密碼

0801

0813

0816

運算思維大挑戰

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