《流程設計》PPT課件.ppt

上傳人:san****019 文檔編號:21186077 上傳時間:2021-04-25 格式:PPT 頁數(shù):52 大小:418.60KB
收藏 版權申訴 舉報 下載
《流程設計》PPT課件.ppt_第1頁
第1頁 / 共52頁
《流程設計》PPT課件.ppt_第2頁
第2頁 / 共52頁
《流程設計》PPT課件.ppt_第3頁
第3頁 / 共52頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《流程設計》PPT課件.ppt》由會員分享,可在線閱讀,更多相關《《流程設計》PPT課件.ppt(52頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第 四 章 C程 序 流 程 設 計 4.1 C語 句 概 述C語 句 :以 “ ;” 作 分 隔 符 ,編 譯 后 產(chǎn) 生 機 器 指 令 .C語 句 分 類v表 達 式 語 句 : 表 達 式 加 分 號 構 成 。v空 語 句 : ;v程 序 控 制 語 句 (9種 ) : if( )else switchfor( )while( )dowhile( )continuebreakgotoreturn分 支循 環(huán)輔 助 控 制如 total=total+limit; a=3; func( ); printf(“Hello,world!n”); v復 合 語 句 : 用 括 起 來 的 一

2、組 語 句l一 般 形 式 : 數(shù) 據(jù) 說 明 部 分 ; 執(zhí) 行 語 句 部 分 ; l說 明 :u“ ”后 不 加 分 號u語 法 上 和 單 一 語 句 相 同u復 合 語 句 可 嵌 套 4.2 程 序 的 三 種 基 本 結 構結 構 化 程 序 設 計v基 本 思 想 : 任 何 程 序 都 可 以 用 三 種 基 本 結 構 表 示 , 限制 使 用 無 條 件 轉 移 語 句 ( goto)v結 構 化 程 序 : 由 三 種 基 本 結 構 反 復 嵌 套 構 成 的 程 序 叫v優(yōu) 點 : 結 構 清 晰 , 易 讀 , 提 高 程 序 設 計 質 量 和 效 率三 種 基

3、 本 結 構v順 序 結 構 A B AB流程圖N-S圖 PA B真假P BA真假v選 擇 結 構 kA1 A2 Ai Ank=k2k=k1 k=knk=ki. .l二 分 支 選 擇 結 構l多 分 支 選 擇 結 構 v循 環(huán) 結 構l當 型 循 環(huán) 結 構l直 到 型 循 環(huán) 結 構 PA假真當P為真AAP 真假A直到P為真注 : A,B,A1.An可 以 是 一 個 簡 單 語 句 , 也 可 以 是 一 個 基 本 結 構 4.3 選 擇 型 程 序 設 計if語 句 ( 條 件 選 擇 語 句 )vif語 句 的 三 種 形 式l形 式 一 :u格 式 : if (expressi

4、on) statementu執(zhí) 行 過 程 : exprstatement非0 =0例 : if (xy) printf(“%d”,x); exprstatement1 statement2非0 =0l形 式 二:u格 式:if (expression) statement1 else statement2u執(zhí) 行 過 程 : 例 : if (xy) max=x; else max=y; l形 式 三 :u格 式 : if ( expr1 ) statement1else if (expr2 ) statement2else if (expr3 ) statement3. else state

5、mentn expr1 statemnt1非0 =0expr2 expr3 statemntnstatemnt3statemnt2非0非0=0 =0u執(zhí) 行 過 程 : 例 : if (salary1000) index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400) index=0.1; else index=0; 如 : if(a=b if(3) printf(“OK”); if(a) printf(“%d”,a);l說 明 :uif后 面 的 表 達 式 類 型

6、任 意u語 句 可 以 是 復 合 語 句u if(x) if(x! 0) if(!x) if(x=0)例 考 慮 下 面 程 序 的 輸 出 結 果 : #include main() int x,y; scanf(“%d,%d”, if(xy) x=y; y=x; else x+; y+; printf(“%d,%dn”,x,y); Compile Error! /*ch4_1.c*/#include main() int x,y; printf(Enter an integer:); scanf(%d, y=x; if(yabsolute value:%dn,x,y);例 求一個數(shù)的絕對

7、值運行:Enter an integer:-12 integer:-12-absolute value :12 /*ch4_2.c*/#include main() int a,b; printf(Enter integer a:); scanf(%d, printf(Enter integer b:); scanf(%d, if(a=b) printf(a=bn); else printf(a!=bn);例 輸入兩個數(shù)并判斷兩數(shù)相等否運行:Enter integer a:12 Enter integer b:12 a=b 運行:Enter integer a:12 Enter integer

8、 b:9 a!=b /*ch4_3.c*/#include main() char c; printf(Enter a character:); c=getchar(); if(c=0 else printf(The character is other charactern);例 判斷輸入字符種類運行:Enter a character: The character is a control character運行:t t:8 t i digi運行: Entera character: D The character is a capital letter運行: Enter a charac

9、ter: h he character is a lowerleter運行: Enter a ch racter:F1 The characteris other character vif語 句 嵌 套 :l一 般 形 式 : if (expr1) if (expr2) statement1 else statement2else if(expr3) statement3 else statement4 內(nèi) 嵌 if內(nèi) 嵌 ifif (expr1) if (expr2) statement1 else statement2 內(nèi) 嵌 if if (expr1) if (expr2) state

10、ment1else statement3 內(nèi) 嵌 ifif (expr1) statement1else if(expr3) statement3 else statement4 內(nèi) 嵌 if 例 輸入兩數(shù)并判斷其大小關系/*ch4_4.c*/#include main() int x,y; printf(Enter integer x,y:); scanf(%d,%d, if(x!=y) if(xy) printf(XYn); else printf(XYn); else printf(X=Yn);運行:Enter integer x,y:12,23 XY Enter integer x,y

11、:12,12 X=Y lif else 配 對 原 則 : 缺 省 時 , else總 是 和 它上 面 離 它 最 近 的 未 配 對 的 if配 對if()if()if()else.else.else. 例 : if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);修 改 : if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”); 實 現(xiàn) if else 正 確 配 對 方 法 : 加 例 考 慮 下 面 程 序 輸 出 結 果 : main() int x=100,a=10,b=2

12、0; int v1=5,v2=0; if(a60n”); break; . 例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); 運行結果:score為5時,輸出: Very good! Good! Pass! Fail! data error! 例 void main() int x=1,y=0,a=0,b=0; switch(x) case

13、 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d”,a,b); 運行結果:a=2,b=1 /*ch4_5.c*/#include main() int c; printf(Enter m or n or h or other:); c=getchar(); switch(c) case m: printf(nGood morning!n);break; case n: printf(nGood night!n); break; c

14、ase h: printf(nHello!n); break; default : printf(n?n); break; 例 根據(jù)輸入字母輸出字符串 4.4 循 環(huán) 型 程 序 設 計概 述C語 言 可 實 現(xiàn) 循 環(huán) 的 語 句 :l用 goto 和 if 構 成 循 環(huán)lwhile 語 句ldo while 語 句lfor 語 句goto語 句 及 用 goto構 成 循 環(huán)vgoto語 句 一 般 格 式 : goto 語 句 標 號; .標 號 : 語 句; v功 能 : 無 條 件 轉 移 語 句v說 明 :l不 能 用 整 數(shù) 作 標 號l只 能 出 現(xiàn) 在 goto所 在 函

15、數(shù) 內(nèi) ,且 唯 一l只 能 加 在 可 執(zhí) 行 語 句 前 面l限 制 使 用 goto語 句 例 用if 和goto語句構成循環(huán),求1001n n/*ch5_1.c*/#include main() int i,sum=0; i=1;loop: if(i=100) sum+=i; i+; goto loop; printf(%d,sum); sum=0+1sum=1+2=3sum=3+3=6sum=6+4sum=4950+100=5050循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件 循環(huán)體 例 從鍵盤輸入一組數(shù)據(jù),以0結束輸入,求數(shù)據(jù)和/*ch5_11.c*/#include main() int

16、 number,sum=0;read_loop: scanf(%d, if(!number) goto print_sum; sum+=number; goto read_loop;print_sum: printf(The total sum is %dn,sum); while語 句v一 般 形 式:while(表 達 式 ) 循 環(huán) 體 語 句 ;v執(zhí) 行 流 程:expr循環(huán)體假(0)真(非0)while v特 點 : 先 判 斷 表 達 式 , 后 執(zhí) 行 循 環(huán) 體v說 明 :l循 環(huán) 體 有 可 能 一 次 也 不 執(zhí) 行l(wèi)循 環(huán) 體 可 為 任 意 類 型 語 句l下 列 情

17、況 , 退 出 while循 環(huán)u條 件 表 達 式 不 成 立 ( 為 零 )u循 環(huán) 體 內(nèi) 遇 break,return,gotol無 限 循 環(huán) : while(1) 循 環(huán) 體 ; 例 用while循環(huán)求 1001n n/*ch5_2.c*/#include main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum);循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件 循環(huán)體 例 顯示110的平方/*ch5_21.c*/#include main() int i=1; while(i=10) printf(%d*%d=%d

18、n,i,i,i*i); i+; 運行結果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=100 dowhile語 句v一 般 形 式 : do 循 環(huán) 體 語 句 ; while(表 達 式 );v執(zhí) 行 流 程:do循環(huán)體expr 假(0)真(非0) while v特 點 : 先 執(zhí) 行 循 環(huán) 體 , 后 判 斷 表 達 式v說 明 :l至 少 執(zhí) 行 一 次 循 環(huán) 體ldowhile可 轉 化 成 while結 構expr循環(huán)體假(0)真(非0)循環(huán)體While循環(huán) 例 用dowhile循環(huán)求 1001n n/*ch5

19、_3.c*/#include main() int i,sum=0; i=1; do sum+=i;i+; while(i=100); printf(%d,sum); 例 while和dowhile比較/*ch5_4.c*/#include main() int i,sum=0; scanf(%d, do sum+=i;i+; while(i=10); printf(%d,sum); main() int i,sum=0; scanf(%d, while(i=10) sum+=i;i+; printf(%d,sum); for語 句v一 般 形 式 : for(expr1 ; expr2 ;

20、expr3) 循 環(huán) 體 語 句 ;v執(zhí) 行 流 程:expr2循環(huán)體假(0)真(非0)forexpr1 expr3 vfor語 句 一 般 應 用 形 式:for(循 環(huán) 變 量 賦 初 值 ; 循 環(huán) 條 件 ; 循 環(huán) 變 量 增 值 ) 循 環(huán) 體 語 句 ;v說 明 :lfor語 句 中 expr1, expr2 ,expr3 類 型 任 意 , 都 可 省 略 , 但 分號 ; 不 可 省l無 限 循 環(huán) : for(;)lfor語 句 可 以 轉 換 成 while結 構 expr1;while(expr2) 循 環(huán) 體 語 句 ; expr3;例 用for循環(huán)求 1001n n

21、#include main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(%d,sum); 例 : #include main( ) int i=0; for(i=0;i10;i+) putchar(a+i); 運行結果:abcdefghij 例 : #include main( ) int i=0; for(;i10;i+) putchar(a+i); 例 : #include main( ) int i=0; for(;i10;) putchar(a+(i+); 例 : #include main( ) int i=0; for(;i10;

22、putchar(a+i),i+) ; main() int i,j,k; for(i=0,j=100;i=j;i+,j-) k=i+j; printf(%d+%d=%dn,i,j,k); #includemain() char c; for(;(c=getchar()!=n;) printf(%c ,c); #include main() int i,c; for(i=0;(c=getchar()!=n;i+=3)printf(%c ,i+c); 例 (f0r)梯形法求數(shù)值積分);1;1()*(* )()(*5.0 )()()(2 )1()(2 )1()(2 1 110 iniihiafhss

23、 bfafhs ihafhbfafh hiafihafhS hiafihafhs n abh n inii迭代:0 y xa a+h a+ih a+(i+1)h bf(x)dxxxf ba 24)( 循 環(huán) 的 嵌 套v三 種 循 環(huán) 可 互 相 嵌 套 ,層 數(shù) 不 限v外 層 循 環(huán) 可 包 含 兩 個 以 上 內(nèi) 循 環(huán) ,但 不 能 相 互 交 叉v嵌 套 循 環(huán) 的 執(zhí) 行 流 程(1) while() while() . (2) do do while( ); . while( ); (3) while() do while( ); . (4) for( ; ;) do while

24、(); while() . 內(nèi)循環(huán)外循環(huán)內(nèi)循環(huán)v嵌 套 循 環(huán) 的 跳 轉禁 止 :l從 外 層 跳 入 內(nèi) 層l跳 入 同 層 的 另 一 循 環(huán)l向 上 跳 轉 例 循環(huán)嵌套,輸出九九表1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 92 4 6 8 10 12 14 16 183 6 9 12 15 18 21 24 279 18 27 36 45 54 63 72 81.i j/*ch5_5.c*/#include main() int i,j; for(i=1;i10;i+) printf(%4d,i); printf(n-n); for(i=1;i10;i+) f

25、or(j=1;j10;j+) printf(j=9)?%4dn:%4d,i*j); i10printf假(0)真(非0)i=1j+j=1j10真(非0)假(0)i+for(i=1;i10;i+) for(j=1;j10;j+) printf(j=9)?%4dn:%4d,i*j);外循環(huán)內(nèi)循環(huán) 4.5 輔 助 控 制 語 句break語 句v功 能 : 在 循 環(huán) 語 句 和 switch語 句 中 ,終 止 并 跳 出 循環(huán) 體 或 開 關 體v說 明 :lbreak只 能 終 止 并 跳 出 最 近 一 層 的 結 構lbreak不 能 用 于 循 環(huán) 語 句 和 switch語 句 之 外

26、 的任 何 其 它 語 句 之 中 exprbreak;假(0)真(非0)while dobreak;.expr假(0)真(非0) while expr2break;.假(0)真(非0)forexpr1expr3 switchexpr語 句 組 1break; 語 句 組 2break; 語 句 組 nbreak; 語 句 組break;.const 1 const 2 const n defaultcase 例 break舉例:輸出圓面積,面積大于100時停止#define PI 3.14159main() int r; float area; for(r=1;r100) break; pr

27、intf(r=%d,area=%.2fn,r,area); 例 break舉例:小寫字母轉換成大寫字母,直至輸入非字母字符#include main() int i,j; char c; while(1) c=getchar(); if(c=a else break; continue語 句v功 能 : 結 束 本 次 循 環(huán) , 跳 過 循 環(huán) 體 中 尚 未 執(zhí) 行 的語 句 , 進 行 下 一 次 是 否 執(zhí) 行 循 環(huán) 體 的 判 斷v僅 用 于 循 環(huán) 語 句 中 exprcontinue;假(0)真(非0)while真(非0) docontinue;. expr假(0) while

28、expr2continue;.假(0)真(非0)forexpr1expr3 例 求輸入的十個整數(shù)中正數(shù)的個數(shù)及其平均值/*ch5_12.c*/#include main() int i,num=0,a; float sum=0; for(i=0;i10;i+) scanf(%d,if(a=0) continue;num+;sum+=a; printf(%d plus integers sum :%6.0fn,num,sum); printf(Mean value:%6.2fn,sum/num); 程 序 舉 例為止最后一項的絕對值小于的近似值,直到公式求例用61071513114 t=1,pi

29、=0,n=1.0,s=1當|t|1e-6pi=pi+tn=n+2s=-st=s/npi=pi*4 輸出pi分子:1,-1,1,-1分母:1,3,5,7,. 例 求Fibonacci數(shù)列:1,1,2,3,5,8,的前40個數(shù))3( )2(12 )1(11 21 nFFF nF nF nnnf1=1,f2=1for i=1 to 20輸出f1,f2f1=f1+f2f2=f2+f1 153423315971094675025514229352457824157817 1855377258417711121393832040570288739088169 213896104181286571964181346269922746563245986 321144987676546368317811217830914930352102334155 例 判斷m是否素數(shù)讀入mk=mi=2當ik m被i整除真假用break結束循環(huán)i=i+1ik+1真假 輸出:m”是素數(shù)”輸出:m”不是素數(shù)” 例 譯密碼例如 Hello,world!譯成密碼:Lipps,asvph!

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!