《《程序的循環(huán)結(jié)構(gòu)》PPT課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《《程序的循環(huán)結(jié)構(gòu)》PPT課件(19頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、2.4 程 序 的 循 環(huán) 結(jié) 構(gòu) 掌 握 For循 環(huán) 語(yǔ) 句 的 基 本 格 式 理 解 For循 環(huán) 語(yǔ) 句 的 執(zhí) 行 過(guò) 程 掌 握 循 環(huán) 變 量 在 執(zhí) 行 過(guò) 程 中 的 變 化 情 況 能 用 For循 環(huán) 結(jié) 構(gòu) 編 寫 簡(jiǎn) 單 的 程 序 實(shí) 例 1、 編 程 求 1+2+3+10的 和 按 照 順 序 結(jié) 構(gòu) 編 寫 程 序 如 下 :Private Sub Command1_Click()dim s as integers=0 s=s+1 s=s+2 s=s+10print send sub用 這 種 方 法 能 不 能 編 程 求 出1+2+3+100的 和 , 1
2、+2+3+1000的 和 ? 實(shí) 際 這 10條 賦 值 語(yǔ) 句 在 重 復(fù) 著同 一 個(gè) 操 作 , 都 是 將 s加 一 個(gè)數(shù) 和 賦 給 s,如 果 用 變 量 x表 示 每一 個(gè) 加 數(shù) , 那 么 這 10條 語(yǔ) 句 就可 以 用 一 條 表 示 : s=s+x, 然后 讓 x的 取 值 分 別 為 1到 10這 10個(gè) 自 然 數(shù) , 重 復(fù) 執(zhí) 行 這 條 語(yǔ) 句 ,就 可 以 實(shí) 現(xiàn) 該 程 序 的 編 寫 。 這就 要 用 到 循 環(huán) 結(jié) 構(gòu) 。 2.4.1 用 For Next語(yǔ) 句 建 立 循 環(huán) 結(jié) 構(gòu) 用 循 環(huán) 語(yǔ) 句 編 寫 :Private Sub Comman
3、d1_Click()Dim s as integer, x as integerS=0 For X=1 to 10 step 1 S=S+X next Xprint SEnd sub循 環(huán) 變 量初 值 終 值 步 長(zhǎng)循 環(huán) 體 1、 For next循 環(huán) 語(yǔ) 句 的 格 式 :用 于 建 立 已 知 循 環(huán) 次 數(shù) 的 循 環(huán) 結(jié) 構(gòu)For 循 環(huán) 變 量 =初 值 To 終 值 Step 步 長(zhǎng) 循 環(huán) 體Next 循 環(huán) 變 量2、 For循 環(huán) 語(yǔ) 句 的 功 能 : 執(zhí) 行 For語(yǔ) 句 : 先 將 初 值 賦 給 循 環(huán) 變量 , 并 記 住 終 值 和 步 長(zhǎng) ( 兩 數(shù) 間
4、隔 ) 。然 后 進(jìn) 行 判 斷 , 是 否 超 出 終 值 ? 如“ 超 出 ” 終 值 時(shí) , 執(zhí) 行 Next 下 一 語(yǔ) 句 , 否 則 執(zhí) 行 循 環(huán) 體 。 執(zhí) 行 循 環(huán) 體 執(zhí) 行 Next語(yǔ) 句 : 循 環(huán) 變 量 加 步 長(zhǎng) , 返回 重 新 判 斷 2.4.2 For循 環(huán) 語(yǔ) 句 的 執(zhí) 行 過(guò) 程 開 始 0 S 1 X X=10 S+X S X+1 X 輸 出 S 結(jié) 束 Y N 練 一 練針 對(duì) for循 環(huán) 語(yǔ) 句 的 語(yǔ) 句 格 式 , 設(shè) 置 如 下 練 習(xí) , 指 出 下 面 程 序 中的 錯(cuò) 誤 :1、 求 1+2+3+4+5的 和 s=0for i=1
5、 to 5 step 1s=s+inext jprint s 2、 在 VB窗 體 界 面 上輸 出 110這 10個(gè) 自 然數(shù)for I=1 to 10print i j-i循 環(huán) 變 量 的 名 稱 要 相 同 。 For語(yǔ) 句 與 Next語(yǔ) 句 必 須 成 對(duì)出 現(xiàn) , 而 且 僅 只 步 長(zhǎng) 為 1時(shí) ,才 可 以 省 略 step 1 3、 求 5+4+3+2+1的 和s=0for I=5 to 1s=s+Inext Iprint s 4、 求 7+5+3+1的 和 : S=0For I= 7 to 1 Step 2S=S+INext IPrint S 當(dāng) 初 值 小 于 終 值
6、時(shí) , 步 長(zhǎng) 為 正 數(shù) ; 當(dāng) 初 值 大 于 終 值 時(shí) , 步 長(zhǎng)為 負(fù) 數(shù) ;補(bǔ) 充 :1、 循 環(huán) 變 量 必 須 為 數(shù) 值 型 , 初 值 、 終 值 : 都 是 數(shù) 值 型 , 可 以是 數(shù) 值 表 達(dá) 式 。2、 循 環(huán) 體 : 在 For語(yǔ) 句 和 Next語(yǔ) 句 之 間 的 語(yǔ) 句 序 列 。 可 以 是 一條 語(yǔ) 句 , 也 可 以 是 多 條 語(yǔ) 句 。Step 1 2 問(wèn) 題 2 求 S=1+2+100和 值 分 析 a、 用 循 環(huán) 產(chǎn) 生 1 100 的自 然 數(shù) b、 每 產(chǎn) 生 一 個(gè) 自 然 數(shù) 將 其累 加 到 求 和 變 量 中 即 : S = S
7、+ N c、 重 復(fù) 執(zhí) 行 S = S + N 即 :循 環(huán) 體 d、 打 印 和 的 值 的 語(yǔ) 句 應(yīng) 在程 序 的 末 尾 即 : Print S = 1 + 2 + + 1000 = ; S 程 序 :Private Sub Command1_Click() Dim N as integer, S as integer S = 0 For N = 1 To 100 S = S + N Next N Print S = 1 + 2 + + 100 = ; S End Sub 問(wèn) 題 3: 一 小 球 從 200 米 高 度 自 由 下 落 , 每 次 落 地 后 反 彈 為 原 來(lái) 高
8、 度 的 一 半 ,然 后 再 落 下 , 求 該 小 球 第 十 次 落 地 時(shí) 共 經(jīng) 過(guò) 了 多 少 米 的 路 程 ? 分 析 : 設(shè) S 表 示 小 球 經(jīng) 過(guò) 的 路 程 變 量 S = S + 2H H 表 示 小 球 反 跳 的 高 度 變 量 H = H / 2 I 表 示 小 球 落 地 的 次 數(shù) 變 量 I = 2 To 10Private Sub Command1_Click() Dim H as integer, S as integer, I as integer S = 200 H = S / 2 For I = 2 To 10 S = S + 2*H H =
9、H / 2 Next I Print 到 第 十 次 落 地 共 經(jīng) 過(guò) 的 路 程 是 : ; S ; 米 end sub 問(wèn) 題 3: 一 小 球 從 200 米 高 度 自 由 下 落 , 每 次 落 地 后 反 彈 為 原 來(lái) 高 度 的 一 半 ,然 后 再 落 下 , 求 該 小 球 第 十 次 落 地 時(shí) 共 經(jīng) 過(guò) 了 多 少 米 的 路 程 ? 分 析 : 設(shè) S 表 示 小 球 經(jīng) 過(guò) 的 路 程 變 量 S = S + H H 表 示 小 球 反 跳 的 高 度 變 量 H = H / 2 I 表 示 小 球 落 地 的 次 數(shù) 變 量 I = 2 To 10Privat
10、e Sub Command1_Click() Dim H as integer, S as integer, I as integer S = 200 H = S / 2 For I = 2 To 10 S = S + 2*H H = H / 2 Next I Print 到 第 十 次 落 地 共 經(jīng) 過(guò)的 路 程 是 : ; S ; 米 end sub Private Sub Command1_Click() Dim S as integer, I as integerS = 200For I = 2 To 10S = S + 200*2*(0.5(I-1)Next I Print 到 第
11、 十 次 落 地 共 經(jīng)過(guò) 的 路 程 是 : ;S; 米 end sub 問(wèn) 題 4: 一 小 球 從 200 米 高 度 自 由 下 落 , 每 次 落 地 后 反 彈 為 原 來(lái) 高 度 的 一 半 ,然 后 再 落 下 , 求 該 小 球 多 少 次 落 地 時(shí) 經(jīng) 過(guò) 的 路 程 大 于 600米 呢 ?Private Sub Command1_Click() Dim S as integer, I as integer S = 200 I=2 do while S600 Print “到 “ ;I; ”次 時(shí) 落 地 經(jīng) 過(guò)的 路 程 是 超 過(guò) 600米 end sub 2.4.
12、4 用 Do 語(yǔ) 句 建 立 循 環(huán) 結(jié) 構(gòu) 1、 Do 語(yǔ) 句 的 功 能 : 用 于 建 立 循 環(huán) 次 數(shù) 未 知 的 循 環(huán) 結(jié) 構(gòu)2、 Do 語(yǔ) 句 的 格 式 :格 式 一 ( 當(dāng) 循 環(huán) ) Do While 循 環(huán) 體 Loop功 能 : 執(zhí) 行 Do 語(yǔ) 句 先 判 斷 條 件 , 當(dāng) 條 件 滿 足 , 則 執(zhí) 行 循 環(huán) 體 ,然 后 執(zhí) 行 Loop 語(yǔ) 句 就 回 到 Do While 再 判 斷 , 直 到 條 件 不 滿 足 ,跳 出 循 環(huán) , 執(zhí) 行 Loop 下 一 語(yǔ) 句 。S 0N 0Do While N = 10 S = S + 1 N = N + 1
13、 Loop Do 語(yǔ) 句 的 第 二 種 格 式 ( 直 到 循 環(huán) ) 1、 直 到 形 循 環(huán) 格 式 Do 循 環(huán) 體 Loop while 2、 格 式 二 功 能 : 執(zhí) 行 Do 語(yǔ) 句 , 就 進(jìn) 入 循 環(huán) , 直 接 執(zhí) 行 循 環(huán) 體 ,在 判 斷 條 件 , 當(dāng) 條 件 滿 足 , 回 到 上 面 執(zhí) 行 循 環(huán) 體 , 直 到 條 件 不滿 足 , 跳 出 循 環(huán) , 執(zhí) 行 Loop 下 一 語(yǔ) 句 。 S = 0 N = 0 Do N = N + 1 S = S + N Loop while N 100 三 種 循 環(huán) 求 解 S=1+2+100和 值 Privat
14、e Sub Command1_Click() Dim N As integer, S As integer S = 0 For N = 1 To 100 S = S + N Next N Print “S ; S End Sub Private Sub Command1_Click()Dim s As Integer, n As Integers = 0n = 0Do While n 100) print SEnd sub P12 實(shí) 踐 ( 1) “ 猴 子 摘 桃 ”Private Sub Command1_Click() Dim day As Integer, S As Integer
15、S = 1For day = 9 To 1 Step -1S = (S + 1) * 2Next dayPrint s=; SEnd Sub猴 子 吃 桃 : 每 次 吃 掉 一 半 多 一 個(gè) , 直 到 第 10天 只 剩 一 個(gè) ,第 一 天 共 摘 了 多 少 個(gè) 桃 子 ? 問(wèn) 題 8 要 將 100元 的 鈔 票 換 成 等 值 的 10元 、 5元 、 2元 、 1元 的 小 鈔票 。 要 求 每 次 換 成 40張 小 鈔 票 , 每 種 至 少 一 張 , 有 多 少 種 換 法 ?分 析 : 10元 一 張 最 多 能 換 9張 , 5元 一 張 最 多 能 換 17張 ,
16、 2元 一 張 最 多 能 換 37張 , 一 元 只 要 用 40減 去 10、 5、 2元 的 數(shù) 目 就 可 以 了 ! Dim i As Integer, j As Integer, k As Integer, m As Integer, sum As Integer sum = 0For i = 1 To 9 For j = 1 To 17 For k = 1 To 37 m = 40 - i - j - k If (m = 1) And (i * 10 + j * 5 + k * 2 + m = 100) Then sum = sum + 1 Print i=; i, j=; j,
17、 k=; k, m=; m End If Next kNext jNext iPrint sum=; sumEnd Sub 2.4.5 循 環(huán) 語(yǔ) 句 嵌 套 的 定 義雙 重 循 環(huán) 語(yǔ) 句 : 在 循 環(huán) 體 內(nèi) 含 有 另 一 個(gè) 循 環(huán) 語(yǔ) 句 的 結(jié) 構(gòu)如 : For 循 環(huán) 變 量 1 = 初 值 To 終 值 Step 步 長(zhǎng) For 循 環(huán) 變 量 2 = 初 值 To 終 值 Step 步 長(zhǎng) 循 環(huán) 體 Next 循 環(huán) 變 量 2 Next 循 環(huán) 變 量 1多 重 循 環(huán) : 如 循 環(huán) 體 內(nèi) 再 包 含 循 環(huán) 結(jié) 構(gòu) , 我 們 將 這 種 循 環(huán) 結(jié) 構(gòu)稱 作
18、多 重 循 環(huán) 。 多 重 循 環(huán) 的 原 則 是 :外 層 循 環(huán) 與 內(nèi) 層 循 環(huán) 必 須 層 層 相 套 , 循 環(huán)體 之 間 不 能 交 叉 。 每 個(gè) 循 環(huán) 必 須 有 一 個(gè) 唯 一 的 循 環(huán) 控 制 變 量 。 問(wèn) 題 5 求 解 1 2 + 3 4 + + 99 100 Private Sub Command1_Click() Dim i As integer, S As integer S = 0 For i = 1 To 100 s = s + ( -1 )(i + 1) * i Next iPrint “S ; S End Sub Private Sub Comma
19、nd1_Click() Dim i As integer, S As integer S = 0For i = 1 To 100 If i Mod 2 = 0 Then s = s i Else s = s + i End IfNext i Print “S ; S End Sub 問(wèn) 題 6 1 - 1/2 + 1/3 1/4 + + 1/99 1/100Private Sub Command1_Click() Dim i As integer, S As integer S = 0 For i = 1 To 100 s = s + ( -1 )(i + 1) * (1/i ) Next i
20、Print “S ; S End Sub 問(wèn) 題 7 求 1 1000之 間 的 素 數(shù) 素 數(shù) 是 指 只 能 被 1和 他 本 身整 除 的 數(shù)要 判 斷 一 個(gè) 數(shù) i是 否 為 素 數(shù) , 只 要 看 i是 否 能 被 2到 i 1范 圍 內(nèi) 的數(shù) 整 除 , 若 能 被 整 除 , 則 不 是 素 數(shù) 。Private Sub Command1_Click() Dim i As Integer, j As Integer Dim prime As Boolean For i = 2 To 1000 prime = True j = 2 Do While (j i) And prime If (i Mod j = 0) Then prime = False j = j + 1 Loop If prime Then Print i ; i Next i End Sub