迴圈結構第2次課

2022-08-19 15:15:02 字數 4202 閱讀 9550

主要內容:

1 迴圈結構的另一種形式:

do….loop形式

掌握語法形式,執行流程

求1到100的和通過for—next形式轉化為do—loop形式

2 迴圈結構的巢狀

舉例方法來介紹

掌握巢狀時的執行流程

常見的演算法要掌握

一 do—loop形式之一

1 語法:

do [while | until 條件]

迴圈體loop

2執行流程:

如果是while,當條件為真的時候就執行迴圈體

如果時until,當條件為假的時候就執行迴圈體

舉例1 :求1到100的和,用do—loop形式來實現

方法一:用do while---loop

private sub command1_click()

dim sum as integer

sum = 0

i = 1 '迴圈變數的初值

do while i <= 100 '迴圈變數的終值

sum = sum + i

i = i + 1 '迴圈變數的步長

loop

print "i = "; i

print "1+2+...+100="; sum

end sub

說明:用while的時候,當條件一直為真的時候,就一直執行迴圈體

方法二:用do until---loop

private sub command1_click()

dim sum as integer

sum = 0

i = 1 '迴圈變數的初值

do until i > 100 '迴圈變數的終值

sum = sum + i

i = i + 1 '迴圈變數的步長

loop

print "i = "; i

print "1+2+...+100="; sum

end sub

方法三:while和until都沒有的情況下,

則表示條件永遠為真,結果就是造成了死迴圈(無限次重複),此時在迴圈體需要有跳出迴圈體的語句,用exit來跳出

private sub command1_click()

dim sum as integer

sum = 0

i = 1 '迴圈變數的初值

do sum = sum + i

i = i + 1 '迴圈變數的步長

if i > 100 then

exit do

end if

loop

print "i = "; i

print "1+2+...+100="; sum

end sub

一 do—loop形式之二

1 語法:

do 迴圈體

loop [while | until 條件]

2執行流程:

迴圈體至少執行1次,執行完第一次後再來判斷條件是否成立

如果是while,則條件成立時,繼續執行迴圈體

如果是until,則相反

分析下列程式的執行結果

private sub command1_click()

dim sum as integer

sum = 0

i = 1 '迴圈變數的初值

do sum = sum + i

i = i + 1 '迴圈變數的步長

loop while i > 100 (分析while寫在 do的後面和寫在while的後面的區別)

print "1+2+...+100="; sum

end sub

舉例 :求1到100的和,用do—loop形式來實現

private sub command1_click()

dim sum as integer

sum = 0

i = 1 '迴圈變數的初值

do sum = sum + i

i = i + 1 '迴圈變數的步長

loop while i <= 100

print "1+2+...+100="; sum

end sub

上機題目1

我國現在有人口13億,按人口增長0.8%計算,多少年後我國的人口數將超過26億?

private sub command1_click()

dim p as double

dim year as integer

p=13

do while p i<= 26

p = p * (1+0.008)

year = year + 1

loop

print 「year =」;year

print 「p =」;p

end sub

二迴圈的巢狀:

1 巢狀:

在乙個迴圈體中又有乙個迴圈,就構成了迴圈的巢狀

2 執行流程:

外迴圈每執行1次,內迴圈就要從頭開始執行

舉例:分析下列程式的執行結果

private sub command1_click()

for j = 1 to 5 step 1 '外迴圈

for i = 1 to 3 step 1 '內迴圈

print "你好"

next i

next j

end sub

舉例:分析下列程式的執行結果

private sub command1_click()

for j = 1 to 4 step 1 '外迴圈

for i = 1 to j step 1 '內迴圈

print "你好"

next i

next j

end sub

舉例3 :

從文字框裡輸入乙個整數,判斷這個整數是否是質數,如果是,就輸出:是質數,如果不是,就輸出:不是質數

思路:1 質數的條件:

除了1和它本身外的數中,如果還有因子的話,就表示不是質數,否則就表示是質數 ,假設這個數放在x變數中,則就從2,3,4,….x-1中找能否被x整除的數

for i = 2 to x – 1 step 1

2 i從2開始直到x-1為止,用x mod i 是否為0來判斷

如果有乙個為0了,就表示不是質數

3 表示是或者不是,只有兩種情況,在程式中一般用乙個變數(邏輯變數)的值是true(是)和false(不是) 來描述

private sub command1_click()

dim x as integer

dim flag as boolean

x = val(

flag = true '一般需要有個初值

for i = 2 to x - 1 step 1

if x mod i = 0 then

flag = false

exit for

end if

next i

'根據flag的值來做相應的處理

if flag = true then

= "是質數"

else

= "不是質數"

end if

end sub

教材57頁例4-19

dim x as integer

dim flag as boolean

for x = 3 to 100 step 1

flag = true '一般需要有個初值

for i = 2 to x - 1 step 1

if x mod i = 0 then

flag = false

exit for

end if

next i

'根據flag的值來做相應的處理

if flag = true then

print x

end if

next x

上機題目2:

從文字框裡輸入乙個任意長度的整數,求這個整數的各位數字之和

選做題目:

google的面試題:對於乙個給定的整數n,假定有這麼乙個函式f(n):它計算書寫從1到n之間的所有整數時總共書寫的1的個數。

例如f(1)=1,f(13)=6。問題:除了n=1之外,當再次出現f(n)=n時,n=?

解釋:為什麼f(13)=6呢?因為書寫1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13這13個整數時一共書寫了6個1。

第5 1課迴圈控制結構

例如 for i 100 相當於 while i 100 6 3個表示式都可以省略。例如 for 語句 相當於 while 1 語句 7 表示式1可以是設定迴圈變數的初值的賦值表示式,也可以是其他表示式。例如 for sum 0 i 100 i sum sum i 8 表示式1和表示式3可以是乙個簡...

第7週第2次課教案

教材內容 1 發展下肢彈跳與力量能力的有關練習。2 跳躍遊戲練習及創新。認知目標 學習竹竿舞,基本掌握竹竿舞的基本步法和節奏。技能目標 通過有關跳躍練習,發展下肢力量 提高跳躍能力。情感目標 通過遊戲練習,讓學生體驗活動的樂趣,並能培養學生的團隊 精神和創新意識。運運動量 教學目標 結構時間 教學內...

第2課二次根式

複習教學目標 1 知道平方根,算術平方根,立方根的含義,能說出二次根式的兩條運算法則。2 會用根號表示並會求數的平方根,算術平方根,立方根,會進行簡單的二次根式的四則運算,會對簡單的二次根式進行化簡,能估算乙個無理數的大致範圍並能比較大小。3 在解題過程中體會數形結合思想,由特殊到一般的數學思想,並...