《循環(huán)控制》PPT課件
《《循環(huán)控制》PPT課件》由會員分享,可在線閱讀,更多相關(guān)《《循環(huán)控制》PPT課件(21頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢第 六 章 循 環(huán) 控 制 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢6.1循 環(huán) 結(jié) 構(gòu)程 序 經(jīng) 常 會 重 復(fù) 執(zhí) 行 某 些 相 同 的 操 作 , 如 :求 : s=1+2+3+4+100算 法 描 述 : s=0;i=1; s+=i;i+; 判 斷 i是 否 小 于 等 于 100 如 果 i 小 于 等 于 100, 重 復(fù) ; 否 則 , 結(jié) 束 。 此 類 根 據(jù) 某 個 條 件 重 復(fù) 執(zhí) 行 相 同 算 法 的 結(jié) 構(gòu) ,
2、稱 為 循 環(huán) 。初 始 化 部 分 。循 環(huán) 體 。 含 有 時 條 件 趨假 的 語 句 。 循 環(huán) 的 條 件 。循 環(huán) 應(yīng) 在 有 限 次 完成 。 C語 言 提 供 了 三 類 實 現(xiàn) 循 環(huán) 的 語 句 :while, dowhile, for 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢 while循 環(huán) ( 當 型 循 環(huán) )格 式 :while(expression)statement; 表 達 式 : 值 非 0, 表示 滿 足 條 件 ; 值 為 0代 表 不 滿 足 條 件 。語 句 ( 復(fù) 合 語 句 ) , 重 復(fù)
3、執(zhí) 行 部 分 ( 循 環(huán) 體 ) 。流 程 : e?yesstatement;no 含 有 使 條 件趨 假 的 語 句 。舉 例 :求 s=1+2+3+4+100#includevoidmain(void)ints=0,i=1;while(i=100)s=s+i;/*s+=i;*/i+;printf(“s=%dn”,s); 初 始 化 部 分循 環(huán) 體條 件 測 試使 條 件 趨 假 語 句 chp3ex5 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢 dowhile循 環(huán) ( 直 到 型 循 環(huán) )格 式 :dostatement; w
4、hile(expression);流 程 :statement;e?yes no 含 有 使 條 件 趨 假 的 語 句 。while循 環(huán) 與 do-while循 環(huán) 的 區(qū) 別 :vwhile循 環(huán) 先 判 條 件 , 后 執(zhí) 行 循 環(huán) 體 ;vdowhile循 環(huán) 先 執(zhí) 行 循 環(huán) 體 , 后 判 條 件 。舉 例 : 求 : 30!#includevoidmain(void)floats=1.0;inti=1;dos*=i;i+;while(i=30);printf(“30!=%f”,s); 初 始 化 。循 環(huán) 體 。測 試 條 件 。使 條 件 趨 假 。 chp3ex6思 考
5、 題 :用 -while實 現(xiàn) s=1+2+100。 用 while實 現(xiàn) 30! 。 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢 for循 環(huán)格 式 : for(e1;e2;e3)statement;流 程 : e1e2?yesstatement;e3 no 舉 例 :求 : s=1+2+3+100#includevoidmain(void)ints,i;for(s=0,i=1;i=100;i+)s=s+i;printf(“s=%d”,s);使 e2趨 假 。在 for循 環(huán) 中 , e1、 e2、 e3都 可 以 省 略 !e1省 略
6、s=0,i=1; e3省 略i+;初 值 表 達 式 。測 試 表 達 式 。增 值 表 達 式 。 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢 循 環(huán) 應(yīng) 用 的 幾 個 問 題 循 環(huán) 的 嵌 套 概 念 : 在 一 個 循 環(huán) 的 循 環(huán) 體 內(nèi) 又 包 含 一 個 完 整 的 循 環(huán) 稱 為 循 環(huán)的 嵌 套 。 打 印 99乘 法 表 。#includevoidmain(void)inti,j;for(i=1;i=9;i+)for(j=1;j=9;j+)printf(“%4d“,i*j);printf(“n“);外層循環(huán) 內(nèi)層循環(huán)
7、說 明 : 內(nèi) 外 層 循 環(huán) 采 用 縮 進 形 式 。 while和 do-while和 for可 以相 互 嵌 套 。 執(zhí) 行 次 數(shù) 為 內(nèi) 層 次 數(shù) 和 外 存 次 數(shù) 的 乘 積 。 chp3ex7 如 何 打 印乘 法 表 的一 半 ? 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢 循 環(huán) 的 中 斷 (break)和 繼 續(xù) (continue) 循 環(huán) 的 中 斷 : break語 句概 念 : 循 環(huán) 體 中 可 以 加 分 支 , 判 斷 是 否 繼 續(xù) 執(zhí) 行 循 環(huán) , break語 句 可 以 提 前 結(jié) 束 循
8、 環(huán) 。舉 例 : 求 : r=110的 圓 的 面 積 , 如 圓 面 積 大 于 100則 中 斷 。 for(r=1;r100)break;printf(“n%f“,area);滿 足 條 件 , 則 退 出 循 環(huán) 。 繼 續(xù) 循 環(huán) : continue語 句continue語 句 的 作 用 是 跳 過 本 次 循 環(huán) 剩 余 的 循 環(huán) 體 內(nèi) 容 , 執(zhí) 行下 次 循 環(huán) 。 舉 例 : 求 1100內(nèi) 的 偶 數(shù) 和 。s=0;for(n=1;n=100;n+)if(n%2!=0)continue;s+=n; 滿 足 條 件 , 跳 過 循環(huán) 體 , 繼 續(xù) 循 環(huán) 。 第
9、六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢 無 限 循 環(huán) 和 空 循 環(huán) 條 件 為 恒 真 的 循 環(huán) 無 限 循 環(huán)while(1)dowhile(1);for(;) 靠 條 件 控 制 的 break語 句 退 出 循 環(huán) 。例 : 程 序 等 待 直 到 輸 入 字 母 A。for(;)ch=getchar();if(ch=A)break; 循 環(huán) 體 為 空 語 句 的 循 環(huán) 空 循 環(huán)for(i=1;i=MAX;t+);作 用 : 程 序 延 時 。 空 語 句 第 六 章 循 環(huán) 控 制WudaixianWudaixianWu
10、daixian 主講人:吳代賢 goto語 句格 式 :gotoLabel/*Label:同 一 函 數(shù) 內(nèi) 語 句 前 的 標 號 。 */作 用 : 轉(zhuǎn) 移 到 標 號 對 應(yīng) 的 語 句 上 繼 續(xù) 執(zhí) 行 。loop:if(i=100)sum=sum+i;i+;gotoloop; 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢循 環(huán) 和 分 支 相 互 嵌 套輸 入 10個 自 然 數(shù) 統(tǒng) 計 其 中 偶 數(shù) 的 個 數(shù) 及 偶 數(shù) 值 和 。算 法 框 圖 :start定 義 變 量初 始 化循 環(huán) ?yes輸 入偶 數(shù) ?yes統(tǒng)
11、計 累 加 nono輸 出 結(jié) 果end #includevoidmain(void)inti,ix,iCount=0,iSum=0;for(i=1;i=10;i+)scanf(“%dn”,if(ix%2=0)iSum+=ix;iCount+;printf(“Num=%dnSum=%d”,iCount,iSum); 循環(huán)結(jié)構(gòu)分支結(jié)構(gòu)輸 入 負 數(shù) ?doif(ix=0)printf(“dateerror”);while(ix=0); 算 法 的 健 壯 性注 意 : 結(jié) 構(gòu) 應(yīng) 完 整 的 包 含 和 被 包 含 。 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixi
12、an 主講人:吳代賢舉 例 : 求 100到 200之 間 的 所 有 素 數(shù) ( 只 能 被 1和 自 身 整 除 的 數(shù) ) 。對 于 自 然 數(shù) n, 判 斷 其 是 否 為 素 數(shù) 有 以 下 三 種 方 法 : 判 斷 n是 否 能 被 從 2到 n-1范 圍 內(nèi) 的 數(shù) 整 除 ; 判 斷 n是 否 能 被 從 2到 (int)(n/2)范 圍 的 數(shù) 整 除 ; 判 斷 n是 否 能 被 從 2到 (int)sqrt(n)范 圍 的 數(shù) 整 除 ;程 序 設(shè) 計 中 標 志 技 術(shù) 的 使 用在 程 序 設(shè) 計 中 , 經(jīng) 常 要 記 錄 一 些 狀 態(tài) , 作 為 判 斷 的
13、條 件 。 因 此需 要 在 程 序 中 設(shè) 置 一 些 標 志 , 通 常 標 志 是 整 型 變 量 。如 : 設(shè) 置 變 量 iFlag用 于 記 錄 是 否 是 素 數(shù) ,iFlag=1是 素 數(shù) ;iFlag=0不 是 素 數(shù) 。 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢判 斷 某 自 然 數(shù) n是 否 是 素 數(shù) 的 算 法s=sqrt(n);iFlag=1;i 從2 循環(huán)到s n%i=0 yesiFlag=0;break;no繼 續(xù) 循 環(huán)直 到 退 出iFlag=0? 第 六 章 循 環(huán) 控 制WudaixianWudai
14、xianWudaixian 主講人:吳代賢程 序 如 下 :#include#includevoidmain(void)intn,j,s,iFlag;for(n=101;n200;n+=2)s=sqrt(n);iFlag=1;for(j=2;j=s;j+)if(n%j=0)iFlag=0;break;if(iFlag)printf(“n%d”,n); 0不 是 素 數(shù) ; 1是 素 數(shù) 。 枚舉所有數(shù) 構(gòu)造,測試條件假 定 n是 素 數(shù) 。 如 果 n能 被 2到 s的 任意 數(shù) 整 除 , 設(shè) 標 志 退 出 循環(huán) 。如 果 n是 素 數(shù) , 輸 出 n。 chp3ex8 第 六 章 循 環(huán)
15、 控 制WudaixianWudaixianWudaixian 主講人:吳代賢 求 水 仙 花 數(shù) ( 條 件 : 三 位 數(shù) 的 個 、 十 、 百 位 的 方 和 等 于 該數(shù) 。 153=13+53+33) 。n為 枚 舉 變 量 , 枚 舉 初 值 100, 枚 舉 終 值 999。構(gòu) 造 條 件 : 取 出 n的 個 、 十 、 百 位 數(shù) 。測 試 是 否 滿 足 條 件 , 滿 足 條 件 輸 出 n。#includevoidmain(void)intn,a,b,c;for(n=100;n=999;n+)a=n/100;b=n%100/10;c=n%10;if(a*a*a+b*b
16、*b+c*c*c=n)printf(“n%d”,n);枚舉所有三位數(shù) 構(gòu)造條件 測 試 條 件取 n的 百 位 a、 十 位 b、 個 位 c。chp3ex9 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢思 考 題 : 36人 一 次 搬 36塊 磚 , 男 搬 4, 女 搬 2, 兩 個 小 孩 抬 一 塊 。 要 一次 搬 完 。 問 : 男 、 女 、 小 孩 要 多 少 ? “百 雞 百 錢 ” 問 題 : “ 雞 翁 一 , 值 錢 五 ; 雞 母 一 , 值 錢 三 ; 雞雛 三 , 值 錢 一 。 百 錢 買 百 雞 , 問 雞
17、 翁 、 母 、 雛 各 幾 何 ? 找 出 1000以 內(nèi) 的 完 數(shù) , 所 謂 完 數(shù) 是 指 該 數(shù) 的 各 因 子 之 和 等 于該 數(shù) , 如 6=1+2+3。 證 明 6到 200以 內(nèi) 的 數(shù) , 符 合 哥 德 巴 赫 猜 想 ( 一 個 大 于 6的 偶數(shù) , 可 以 分 解 成 兩 個 質(zhì) 數(shù) 之 和 ) 。 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢舉 例 求 ex=1+x+x2/2!+xn/n!前 n+1項 之 和 。迭 代 次 數(shù) i012n迭 代 公 式 t=t*x/i迭 代 初 值 exp=1,t=1,(i=
18、1n)#includevoidmain(void)floatexp,x,t;inti,n;scanf(“%f,%d”,t=1.0;exp=1.0;for(i=1;i=n;i+)t*=x/i;exp+=t;printf(“n%f15.6”,exp) 迭 代 初 值 。迭 代 公 式 。迭代過程 附 加 條 件 :當 |t|10-5,結(jié) 束 運 算 。if(fabs(t)1e-5)break; chp3exa 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢 用 梯 形 法 求 定 積 分 41 2 )412( dxxx(0,0)y xf(x)a b
19、 面 積 hx 將 a, b分 為 n等 份 , h=(b-a)/n; 求 n個 梯 形 面 積 之 和 , 第 i小 面 積x=x+hf1=f(x)下 底s=s+(f0+f1)*h/2f0=f1迭 代 x初 值 為 as初 值 為 0f0初 值 為 f(a)次 數(shù) 為 n迭 代 求 積 分 的 方 法 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢程 序 如 下 : #includevoidmain(void)floata,b,f0,f1,h,x,s=0.0;intn,i;scanf(“%f,%f,%d”,h=(b-a)/h;x=a;f0=x
20、*x+12.0*x+4.0;for(i=0;in;i+)x=x+h;f1=x*x+12.0*x+4.0;s=s+(f0+f1)*h/2.0;f0=f1;printf(“%f”,s); chp3exb迭 代 初 值 。迭代循環(huán) 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢 求 s=a+aa+aaa+aaaa。 0a10共 n項 , 最 后 一 項 有n個 a。如 求 s=2+22+222+2222+222222n、 a從 鍵 盤 輸 入 。迭 代 次 數(shù) : i=1n 迭 代 初 值 : s=0.0,t=a 迭 代 公 式 : t=t*10+a
21、#includevoidmain(void)floats,t;inti,a,n;doscanf(“%d,%d”,if(a9)printf(“nDataInputError!nInputagain:”);while(a9);for(s=0.0,t=a,i=1;i=n;i+)s+=t;t=t*10+a;printf(“ns=%f”,s); 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢xy f(x)x1 f1=f(x1)x2f2=f(x2)算 法 分 析 : 輸 入 x1、 x2, 并 求 出 f1、 f2。如 果 f1*f2大 于 0, 有 可
22、能 在 此區(qū) 間 內(nèi) 沒 有 根 , 重 新 輸 入 。 否 則 , 將 區(qū) 間 二 分x=(x1+x2)/2計 算 出 f=f(x) xf 判 斷 f與 f1是 否 同 號如 果 同 號 : x1=x, f1=f否 則 : x2=x, f2=f 11f1 f2 判 斷 fabs(x1-x2)是 否 小 于 某 個 規(guī) 定 的 精 度 (如 10-6):如 果 小 于 精 度 : 求 出 根 , 退 出 到 。否 則 : 繼 續(xù) 。 輸 出 根 。 二 分 法 求 方 程 f(x)=x3-6x-1=0, 在 0, 5區(qū) 間 的 根 。 第 六 章 循 環(huán) 控 制WudaixianWudaixianWudaixian 主講人:吳代賢二 分 法 求 方 程 根 程 序#include#includevoidmain(void)floatx1,x2,x,f1,f2,f;scanf(“%f,%f”,f1=x1*x1*x1-6.0*x1-1;f2=x2*x2*x2-6.0*x2-1;dox=(x1+x2)/2;f=x*x*x-6.0*x-1;if(f*f1=0)f1=f;x1=x;elsef2=f;x2=x;while(fabs(x1-x2)=1e-6);printf(“Rootis:%f”,(x1+x2)/2); chp3exd迭 代 初 值 。二分迭代循環(huán) 迭 代 條 件 。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。