《C語(yǔ)言程序設(shè)計(jì)》教學(xué)課件03結(jié)構(gòu)化程序設(shè)計(jì)(上)_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》教學(xué)課件03結(jié)構(gòu)化程序設(shè)計(jì)(上)_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》教學(xué)課件03結(jié)構(gòu)化程序設(shè)計(jì)(上)_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》教學(xué)課件03結(jié)構(gòu)化程序設(shè)計(jì)(上)_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》教學(xué)課件03結(jié)構(gòu)化程序設(shè)計(jì)(上)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第3章結(jié)構(gòu)化程序設(shè)計(jì)第3章結(jié)構(gòu)化程序設(shè)計(jì)一個(gè)完整的程序包括對(duì)數(shù)據(jù)的描述和對(duì)數(shù)據(jù)的操作兩部分,程序設(shè)計(jì)的核心就是描述數(shù)據(jù)的操作即設(shè)計(jì)算法。C語(yǔ)言作為面向過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,其程序設(shè)計(jì)的基本思想就是用順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)來(lái)構(gòu)造程序。本章將通過(guò)幾個(gè)案例來(lái)重點(diǎn)介紹選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的應(yīng)用及流程圖的使用。本章涉及的案例與知識(shí)要點(diǎn)如圖3-1所示。第3章結(jié)構(gòu)化程序設(shè)計(jì)第3章結(jié)構(gòu)化程序設(shè)計(jì)(1)掌握算法和流程圖的基本概念。(2)熟練掌握if、if…else選擇語(yǔ)句的格式及使用。(3)熟練掌握switch開(kāi)關(guān)語(yǔ)句的格式及使用。(4)熟練掌握while、do…while和for循環(huán)語(yǔ)句的格式及使用。(5)掌握嵌套循環(huán)的使用。學(xué)習(xí)目標(biāo)CONTENTS案例1:胖瘦指數(shù)案例2:自動(dòng)售貨機(jī)案例3:累加求和案例4:水仙花數(shù)案例5:九九乘法表案例1:胖瘦指數(shù)用流程圖描述胖瘦指數(shù)的判定,并編寫(xiě)程序?qū)崿F(xiàn)根據(jù)輸入身高和體重來(lái)判定胖瘦指數(shù)。胖瘦指數(shù)與身高、體重的關(guān)系為:胖瘦指數(shù)t=w/h2(w表示體重,單位為kg;h表示身高,單位為m)。當(dāng)t<18時(shí),偏瘦;當(dāng)18≤t<25時(shí),正常;當(dāng)25≤t<27時(shí),超重;當(dāng)t≥27時(shí),肥胖。案例1:胖瘦指數(shù)案例描述案例1:胖瘦指數(shù)相關(guān)知識(shí)0103050204程序流程圖if…else語(yǔ)句——雙分支選擇結(jié)構(gòu)if語(yǔ)句——單分支選擇結(jié)構(gòu)算法案例1:胖瘦指數(shù)1.程序?qū)?shù)據(jù)的描述對(duì)操作的描述計(jì)算機(jī)程序就是一條條指令的集合。一條機(jī)器語(yǔ)言稱為一條指令,指令是不可分割的最小功能單元。一個(gè)程序應(yīng)包括以下兩個(gè)方面。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu)。操作方法和步驟,也就是算法。著名的計(jì)算機(jī)科學(xué)家沃思提出了一個(gè)公式:程序=數(shù)據(jù)結(jié)構(gòu)+算法。2.算法的特征案例1:胖瘦指數(shù)確定性有效性輸出輸入有窮性3.流程圖案例1:胖瘦指數(shù)判斷框連接點(diǎn)流程線起止框輸入/輸出框處理框案例1:胖瘦指數(shù)4.if語(yǔ)句——單分支選擇結(jié)構(gòu)if語(yǔ)句用于單分支判斷(單個(gè)執(zhí)行路徑),具體語(yǔ)法格式如下。if(判斷條件){

語(yǔ)句塊}先計(jì)算判斷條件的值,根據(jù)判斷條件成立與否,進(jìn)行相應(yīng)處理。如果判斷條件成立(值為非0,即“真”),則執(zhí)行語(yǔ)句塊;如果不成立(值為0,即“假”),則跳過(guò)語(yǔ)句塊,執(zhí)行后續(xù)語(yǔ)句。if語(yǔ)句的執(zhí)行流程如圖3-3所示。案例1:胖瘦指數(shù)5.if…else語(yǔ)句——雙分支選擇結(jié)構(gòu)if…else語(yǔ)句用于雙分支判斷(兩個(gè)執(zhí)行路徑),具體語(yǔ)法格式如下。if(判斷條件){

語(yǔ)句塊1}else{

語(yǔ)句塊2}先計(jì)算判斷條件的值,根據(jù)判斷條件成立與否,進(jìn)行相應(yīng)處理。如果判斷條件成立(值為非0,即“真”),則執(zhí)行語(yǔ)句塊1;如果不成立(值為0,即“假”),則跳過(guò)語(yǔ)句塊1,執(zhí)行語(yǔ)句塊2。if…else語(yǔ)句的執(zhí)行流程如圖3-4所示。視頻:elseif語(yǔ)句看視頻哦案例1:胖瘦指數(shù)案例實(shí)現(xiàn)算法分析流程圖表達(dá)代碼實(shí)現(xiàn)運(yùn)行結(jié)果1.算法分析第一步:定義三個(gè)變量t、w、h,分別代表胖瘦指數(shù)、體重和身高,由于會(huì)出現(xiàn)小數(shù),所以類型定義為float型。第二步:使用輸入函數(shù)scanf()從鍵盤(pán)獲取兩個(gè)數(shù)值,分別賦給w、h。第三步:根據(jù)公式計(jì)算胖瘦指數(shù)t=w/h2。第四步:使用if…else語(yǔ)句,根據(jù)t值輸出胖瘦指數(shù)與胖瘦評(píng)定結(jié)果。2.流程圖表達(dá)程序算法流程圖如圖3-5所示。案例1:胖瘦指數(shù)3.代碼實(shí)現(xiàn)#include<stdio.h>//標(biāo)準(zhǔn)輸入/輸出函數(shù)的頭文件#include<stdlib.h>//system()函數(shù)的頭文件intmain()//主函數(shù)開(kāi)始{floatt,w,h;//定義三個(gè)float型變量printf("請(qǐng)輸入體重(Kg)和身高(m)(以空格分隔):");

//提示輸入數(shù)據(jù)scanf("%f%f",&w,&h);//輸入體重、身高t=w/(h*h);//計(jì)算胖瘦指數(shù)printf(“--------------------------------------------------------\n");printf("對(duì)照表:t<18:偏瘦18<=t<25:正常體重25<=t<27:超重t>=27:肥胖\n");printf("--------------------------------------------------------\n");案例1:胖瘦指數(shù)if(t>=27)//判斷t大于27嗎

printf("你的胖瘦指數(shù)是:%.2f,肥胖?。躰\n",t);

//如果是打印結(jié)果,保留2位小數(shù)

elseif(25<=t&&t<27)//t小于27并且大于等于25嗎//如果是打印結(jié)果,保留2位小數(shù)

printf("你的胖瘦指數(shù)是:%.2f,超重!\n\n",t);

elseif(18<=t&&t<25)//t小于25并且大于等于18嗎

printf("你的胖瘦指數(shù)是:%.2f,正常體重?。躰\n",t);

//如果是打印結(jié)果,保留2位小數(shù)

else//以上都不滿足,則t小于18

printf("你的胖瘦指數(shù)是:%.2f,偏瘦?。躰\n",t);

//打印結(jié)果,保留2位小數(shù)

system(“pause");//暫停屏幕,便于觀察結(jié)果,按任

意鍵退出

return0;}案例1:胖瘦指數(shù)案例1:胖瘦指數(shù)4.運(yùn)行結(jié)果程序運(yùn)行結(jié)果如圖3-6所示。案例2:自動(dòng)售貨機(jī)編程來(lái)模擬一個(gè)簡(jiǎn)單的飲料自動(dòng)售貨機(jī)。售貨機(jī)內(nèi)裝有檸檬汁、蘋(píng)果汁、康師傅紅茶、康師傅綠茶、王老吉涼茶5種飲料。要求在屏幕上顯示出飲料列表,然后提示用戶選擇其中的一種,當(dāng)用戶輸入正確選項(xiàng)后,在屏幕上顯示出用戶選擇的結(jié)果。案例2:自動(dòng)售貨機(jī)案例描述switch語(yǔ)句又稱開(kāi)關(guān)語(yǔ)句,用來(lái)代替簡(jiǎn)單的、擁有多個(gè)分支的if…else語(yǔ)句,專門(mén)用來(lái)處理多分支選擇問(wèn)題。具體的語(yǔ)法格式如下。switch(表達(dá)式){case目標(biāo)值1:語(yǔ)句塊1;case目標(biāo)值2:語(yǔ)句塊2;……case目標(biāo)值n:語(yǔ)句塊n;default:語(yǔ)句塊n+1;}switch語(yǔ)句執(zhí)行流程為:首先計(jì)算switch后表達(dá)式的值,然后依次與每個(gè)case中的目標(biāo)值進(jìn)行匹配,如果找到匹配的值,就執(zhí)行相應(yīng)case分支的語(yǔ)句塊;如果沒(méi)有匹配的目標(biāo)值,則執(zhí)行default分支的語(yǔ)句塊。switch語(yǔ)句說(shuō)明如下。案例2:自動(dòng)售貨機(jī)相關(guān)知識(shí)(1)switch關(guān)鍵字后面括號(hào)內(nèi)的表達(dá)式的值一般為整型或字符型。(2)各個(gè)case關(guān)鍵字與目標(biāo)值之間一定要有空格,且目標(biāo)值必須互不相同,否則會(huì)出現(xiàn)矛盾。(3)case分支里如果有多條語(yǔ)句,不必用“{}”括起來(lái)。(4)多個(gè)case可以共用一組語(yǔ)句塊(注意break語(yǔ)句的位置在最后一個(gè)case中)。(5)各個(gè)case、default分支出現(xiàn)的順序沒(méi)有要求,不影響執(zhí)行結(jié)果,但習(xí)慣將default放在最后。此時(shí),不寫(xiě)目標(biāo)值,break語(yǔ)句也可以省略,甚至整個(gè)default分支也可以省略。(6)break語(yǔ)句的作用是執(zhí)行完一個(gè)case分支后跳出switch選擇結(jié)構(gòu),它是跳轉(zhuǎn)語(yǔ)句的一種。案例2:自動(dòng)售貨機(jī)視頻:switch語(yǔ)句看視頻哦案例2:自動(dòng)售貨機(jī)案例實(shí)現(xiàn)算法分析流程圖表達(dá)代碼實(shí)現(xiàn)運(yùn)行結(jié)果案例2:自動(dòng)售貨機(jī)1.算法分析第一步:用輸出函數(shù)printf()顯示出自動(dòng)售貨機(jī)的商品界面。第二步:定義一個(gè)整型變量drink,并用switch語(yǔ)句來(lái)確定飲料選擇情況。第三步:選擇相應(yīng)的飲料后,顯示出用戶的選擇結(jié)果并提示投幣。2.流程圖表達(dá)程序算法流程如圖3-7所示。3.代碼實(shí)現(xiàn)#include<stdio.h>//標(biāo)準(zhǔn)輸入/輸出函數(shù)頭文件#include<stdlib.h>//system()函數(shù)的頭文件intmain()//主函數(shù)開(kāi)始{intdrink=0;//定義一個(gè)整型變量用于存儲(chǔ)飲料信息

printf("歡迎使用“24小時(shí)自動(dòng)售貨機(jī)”\n");//顯示商品界面

printf(“-------------------------------------------------\n");

printf(“

1.檸檬汁\n");

printf(“

2.蘋(píng)果汁

\n");

printf(“

3.康師傅紅茶

\n");

printf(“

4.康師傅綠茶

\n");

printf(“

5.王老吉涼茶

\n");

printf("-------------------------------------------------\n");案例2:自動(dòng)售貨機(jī)printf("請(qǐng)選擇【1-5】:");//提示輸入飲料信息scanf("%d",&drink);//輸入數(shù)字代表不同飲料switch(drink)//根據(jù)drink值決定輸出結(jié)果{case1://如果輸入1printf("\n你選擇了:檸檬汁,請(qǐng)投幣3元\n");

//代表選擇了檸檬汁break;//跳出switch語(yǔ)句case2://如果輸入2printf("\n你選擇了:蘋(píng)果汁,請(qǐng)投幣3元\n");

//代表選擇了蘋(píng)果汁break;case3://如果輸入3printf("\n你選擇了:康師傅紅茶,請(qǐng)投幣4元\n");

//代表選擇了康師傅紅茶案例2:自動(dòng)售貨機(jī)break;case4://如果輸入4printf("\n你選擇了:康師

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論