




已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章 算法,算法在程序中的重要性,一個(gè)程序包含以下內(nèi)容,數(shù)據(jù)的類(lèi)型與組織形式數(shù)據(jù)結(jié)構(gòu) 操作步驟算法 結(jié)構(gòu)化程序設(shè)計(jì)方法 計(jì)算機(jī)語(yǔ)言,計(jì)算機(jī)算法,數(shù)值運(yùn)算 非數(shù)值運(yùn)算,算法實(shí)例,在一組數(shù)a1,a2,a3,a4,.,a10中找出最大值,算法的特征,有窮性:操作步驟有限 確定性:每一步驟有確切定義 輸入:0個(gè)或多個(gè)輸入,從外界獲得信息 輸出:一個(gè)或多個(gè)輸出,反映數(shù)據(jù)處理結(jié)果有效性:每個(gè)步驟能執(zhí)行,并有確定結(jié)果 “正確”的算法有優(yōu)劣之分,時(shí)間、空間的復(fù)雜度,算法的表達(dá)方式,自然語(yǔ)言 流程圖 N-S圖 偽代碼 計(jì)算機(jī)語(yǔ)言,算法的表達(dá)方式,自然語(yǔ)言 流程圖 N-S圖 偽代碼 計(jì)算機(jī)語(yǔ)言,如果x是正數(shù),就打印x;否則打印-x,算法的表達(dá)方式,自然語(yǔ)言 流程圖 N-S圖 偽代碼 計(jì)算機(jī)語(yǔ)言,算法的表達(dá)方式,自然語(yǔ)言 流程圖 N-S圖 偽代碼 計(jì)算機(jī)語(yǔ)言,算法的表達(dá)方式,自然語(yǔ)言 流程圖 N-S圖 偽代碼1 計(jì)算機(jī)語(yǔ)言,如果 x0 就 打印 x 否則 打印 -x,算法的表達(dá)方式,自然語(yǔ)言 流程圖 N-S圖 偽代碼2 計(jì)算機(jī)語(yǔ)言,if x0 then print x else print -x,算法的表達(dá)方式,自然語(yǔ)言 流程圖 N-S圖 偽代碼2 計(jì)算機(jī)語(yǔ)言,if (x0) printf(“%d“, x); else printf(“%d“, -x);,判斷框,處理框,輸入/輸出框,流程線,程序流程圖常用符號(hào),結(jié)構(gòu)化程序設(shè)計(jì)方法,自頂向下 逐步細(xì)化 模塊化設(shè)計(jì) 結(jié)構(gòu)化編碼,大任務(wù)分解為小任務(wù),三種基本程序結(jié)構(gòu),順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu),順序結(jié)構(gòu)流程,步驟1,步驟2,步驟3,選擇結(jié)構(gòu)(分支結(jié)構(gòu))流程,語(yǔ)句組1,語(yǔ)句組2,條件,Y,N,循環(huán)結(jié)構(gòu)流程,語(yǔ)句組,條件,Y,N,第4章 選擇結(jié)構(gòu),選擇結(jié)構(gòu)(分支結(jié)構(gòu))流程,語(yǔ)句組1,語(yǔ)句組2,條件,Y,N,選擇結(jié)構(gòu)實(shí)例,P.66 例3.5 一元二次方程 程序存在的問(wèn)題:用戶(hù)輸入的數(shù)據(jù)必須保證b2-4ac0,否則調(diào)用sqrt函數(shù)會(huì)出錯(cuò)。 改進(jìn):P.86 例4.1 是否還有不完善之處?,if語(yǔ)句,if (條件) 語(yǔ)句,if (條件) 復(fù)合語(yǔ)句 else 復(fù)合語(yǔ)句,if (條件) 語(yǔ)句 else 語(yǔ)句,if語(yǔ)句,int x; printf(“x=“); scanf(“%d“,分別輸入正數(shù)、負(fù)數(shù)、零,判斷程序的運(yùn)行結(jié)果,if語(yǔ)句,int x; printf(“x=“); scanf(“%d“,分別輸入正數(shù)、負(fù)數(shù)、零,判斷程序的運(yùn)行結(jié)果,關(guān)系運(yùn)算符, = = !=,優(yōu)先級(jí)高 優(yōu)先級(jí)低,關(guān)系運(yùn)算符,例:P.92 L.8,關(guān)系表達(dá)式,用關(guān)系運(yùn)算符連接算術(shù)表達(dá)式(或字符/關(guān)系/邏輯/賦值表達(dá)式)形成 關(guān)系表達(dá)式的值是真(以1表示) 或假(以0表示) 字符/關(guān)系/邏輯/賦值表達(dá)式均以數(shù)值形式參加關(guān)系運(yùn)算,關(guān)系表達(dá)式,判斷下面程序運(yùn)行時(shí)顯示的結(jié)果: int a=5,b=3; printf(“%dn“,ab); printf(“%dn“,(a3)(b=3); printf(“%dn“,a3b=3); printf(“%dn“,ab2); printf(“%dn“,a-3(b=2); printf(“%dn“,aA);,邏輯運(yùn)算符,! 非 & 與 | 或,運(yùn)算規(guī)則見(jiàn)表4-2,4-3,例 P.93-94,優(yōu)先級(jí),邏輯表達(dá)式,例:P.95-96 閏年的表達(dá) 以邏輯運(yùn)算符連接關(guān)系表達(dá)式和邏輯量形成 邏輯表達(dá)式的結(jié)果是真(以1表示) 或假(以0表示) 0和1以外的數(shù)據(jù)(數(shù)值、字符等)參加邏輯運(yùn)算時(shí),以0為假,非0為真,邏輯變量,C+,C99版本使用 類(lèi)型符 _Bool 值為 true 和 false 頭文件 stdbool.h,if語(yǔ)句,if (條件) 語(yǔ)句 if (條件) 語(yǔ)句 else 語(yǔ)句 if (條件) 復(fù)合語(yǔ)句 else 復(fù)合語(yǔ)句,說(shuō)明: “條件”是關(guān)系表達(dá)式或邏輯表達(dá)式,其值為“真”(非0)或“假”(0) 語(yǔ)句均要以分號(hào)結(jié)束, 括起的復(fù)合語(yǔ)句每句都以分號(hào)結(jié)束,if語(yǔ)句,例:P.88 例4.3 三個(gè)數(shù)從小到大排列,例 求分段函數(shù)的值,* 用多個(gè)平行的 if 語(yǔ)句表達(dá) * 用 if else if else 表達(dá) * abs,pow,exp函數(shù)的使用,if語(yǔ)句,if(條件1) 語(yǔ)句1 else if(條件2) 語(yǔ)句2 else if(條件3) 語(yǔ)句3 else 語(yǔ)句n,例:求一元二次方程的解,if語(yǔ)句的嵌套,if 語(yǔ)句的嵌套 if (.) if (.) 語(yǔ)句1 else 語(yǔ)句2 else if (.) 語(yǔ)句3 else 語(yǔ)句4,“語(yǔ)句”包括復(fù)合語(yǔ)句,讀教材101頁(yè)代碼,條件運(yùn)算符和條件表達(dá)式,條件運(yùn)算符 ? : 唯一的三目運(yùn)算符 條件表達(dá)式 表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3 當(dāng)表達(dá)式1為真時(shí)返回表達(dá)式2的值,否則返回表達(dá)式3的值,條件運(yùn)算符和條件表達(dá)式,例 int a,b,x; a=5; b=8; x=ab?a:b; printf(“%d“,x);,switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu),switch (表達(dá)式) case 常量表達(dá)式1: 語(yǔ)句1 case 常量表達(dá)式2: 語(yǔ)句2 case 常量表達(dá)式n: 語(yǔ)句n default: 語(yǔ)句n+1 ,switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu),說(shuō)明: switch會(huì)執(zhí)行相符的分支之后的所有語(yǔ)句; 為了使程序在執(zhí)行一個(gè)相符的分支后不再繼續(xù)執(zhí)行后面的語(yǔ)句,可使用break語(yǔ)句終止switch; 相鄰的多個(gè)分支可執(zhí)行共同的語(yǔ)句。,閱讀下面的程序,判斷編譯和運(yùn)行結(jié)果,int x; char y; scanf(“%d“,x); if (90=x=100) y=“A“; if (80=x=89) y=“B“; if (70=x80) y=“C“; if (60=x70) y=“D“; else y=“E“; printf(“Level:%cn“,y);,注意: scanf函數(shù)中的地址運(yùn)算符; 90=x=100的正確表達(dá); char類(lèi)型,單引號(hào)與雙引號(hào); 分支的結(jié)構(gòu)與運(yùn)行步驟。,閱讀下面的程序,判斷編譯和運(yùn)行結(jié)果,int x; char y; printf(“input x :“); scanf(“%d“,x); switch (x/10) case 10 : y=“A“; case 9 : y=“A“;,case 8 : y=“B“; case 7 : y=“C“; case 6 : y=“D“; default : y=“E“; printf(“Level:%cn“,y);,注意: 同前;case后的數(shù)據(jù)類(lèi)型; 每個(gè)case后的break語(yǔ)句; 使用相同語(yǔ)句的分支合并。,閱讀下面的程序,判斷運(yùn)行結(jié)果,int x=13,y; if (x5) printf(“y=20“); printf(“y=10“); printf(“%d“,y);,注意:y沒(méi)有被賦值的錯(cuò)誤;分支結(jié)束后的語(yǔ)句,閱讀下面的程序,判斷運(yùn)行結(jié)果,float r,S; scanf(“r=%f“,注意: (1)條件后未寫(xiě) 造成分支語(yǔ)句不匹
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 預(yù)防感冒安全課件
- 儀器管理標(biāo)識(shí)培訓(xùn)
- 科室職業(yè)健康培訓(xùn)
- 音樂(lè)課件軟件小學(xué)生
- 水肌酸產(chǎn)品項(xiàng)目建設(shè)管理方案(參考模板)
- 電網(wǎng)側(cè)獨(dú)立儲(chǔ)能示范項(xiàng)目環(huán)境影響報(bào)告書(shū)(范文模板)
- 2025年脲醛塑料項(xiàng)目合作計(jì)劃書(shū)
- xx片區(qū)城鄉(xiāng)供水一體化項(xiàng)目風(fēng)險(xiǎn)管理方案(范文模板)
- 2025年真空電子器件及零件項(xiàng)目建議書(shū)
- 2025年抗?jié)儾∷庬?xiàng)目建議書(shū)
- 湖北省黃岡市2024-2025學(xué)年高一下學(xué)期期末質(zhì)量監(jiān)測(cè)數(shù)學(xué)試卷
- 醫(yī)保drg付費(fèi)課件培訓(xùn)
- 彩妝知識(shí)培訓(xùn)
- 云南省曲靖市宣威市民中2025屆高一化學(xué)第二學(xué)期期末檢測(cè)試題含解析
- 2024年寧夏銀川金鳳區(qū)社區(qū)專(zhuān)職工作者考試真題
- 2025至2030全球及中國(guó)帆船行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 北京海淀街道社區(qū)衛(wèi)生服務(wù)中心招聘筆試真題2024
- 新疆天富能源股份有限公司2024年度商譽(yù)減值測(cè)試資產(chǎn)評(píng)估報(bào)告
- 2025年黑龍江龍東地區(qū)中考數(shù)學(xué)試卷真題及答案詳解(精校打?。?/a>
- 泄密警示教育專(zhuān)題培訓(xùn)
- 腫瘤標(biāo)志物實(shí)驗(yàn)室解讀
評(píng)論
0/150
提交評(píng)論