《基本控制結(jié)構(gòu) 》PPT課件.ppt_第1頁
《基本控制結(jié)構(gòu) 》PPT課件.ppt_第2頁
《基本控制結(jié)構(gòu) 》PPT課件.ppt_第3頁
《基本控制結(jié)構(gòu) 》PPT課件.ppt_第4頁
《基本控制結(jié)構(gòu) 》PPT課件.ppt_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

VIP免費(fèi)下載

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

文檔簡(jiǎn)介

第三章 基本控制結(jié)構(gòu),3.1 順序結(jié)構(gòu)程序設(shè)計(jì) 3.2 選擇結(jié)構(gòu)程序設(shè)計(jì) 3.3 循環(huán)控制,第三章 基本控制結(jié)構(gòu),教學(xué)目標(biāo): 1.掌握 C+ 語言常用的輸入 / 輸出方式 2.熟練掌握 if else 的兩種語法 3.掌握 for 、 while 、 do-while 語句的用法 教學(xué)重點(diǎn): 1.賦值語句、數(shù)據(jù)的輸入輸出及輸入輸出中常用的控制格式 2.程序設(shè)計(jì)中構(gòu)成選擇、循環(huán)的算法; 教學(xué)難點(diǎn): 選擇、循環(huán)的嵌套算法分析。,3.1 順序結(jié)構(gòu)程序設(shè)計(jì),3.1.1 C+ 語句概述 3.1.2 順序結(jié)構(gòu)程序設(shè)計(jì) 3.1.3 數(shù)據(jù)輸入與輸出,3.1.1 C+ 語句概述,在程序設(shè)計(jì)語言中,程序是按什么順序執(zhí)行的呢?默認(rèn)按程序中語句順序執(zhí)行,語句是程序的基本功能單元。當(dāng)然也有分支選擇,跳轉(zhuǎn),循環(huán)非順序執(zhí)行,正體現(xiàn)了計(jì)算機(jī)的“智能”。C+程序也不例外。分三種基本控制結(jié)構(gòu): (1)順序結(jié)構(gòu) (2)選擇結(jié)構(gòu) (3)循環(huán)結(jié)構(gòu),C+語句 聲明語句 表達(dá)式語句 選擇語句 循環(huán)語句 跳轉(zhuǎn)語句 復(fù)合語句 1、聲明語句(說明語句) 程序中的實(shí)體標(biāo)識(shí)符必須先聲明后使用 實(shí)體標(biāo)識(shí)符如:變量、常量、函數(shù)、結(jié)構(gòu)、類、對(duì)象等。 聲明的實(shí)質(zhì):告之實(shí)體類型 (1)變量聲明 (2)常量聲明 (3)函數(shù)聲明 (4)類型聲明 聲明語句其它功能:實(shí)體定義,變量賦值,2、表達(dá)式語句 格式:表達(dá)式; 類別: (1)賦值語句 (2)復(fù)合賦值語句 (3)增(減)量語句 (4)函數(shù)調(diào)用語句 (5)輸入輸出語句 表達(dá)式語句與表達(dá)式的區(qū)別: 表達(dá)式可以包含在其他表達(dá)式中,而語句不可。 例如:if (a=b)0) t=a; 不可寫為:if (a=b;)0) t=a;,將多個(gè)語句用一對(duì)大括號(hào)包圍,便構(gòu)成一個(gè)復(fù)合語句,邏輯上的一條語句 例如 空語句形式 ;不產(chǎn)生任何動(dòng)作, sum=sum+i; i+; , sum=sum+i; i+; ,3.1.2 順序結(jié)構(gòu)程序設(shè)計(jì),3.1.3 數(shù)據(jù)輸入與輸出,簡(jiǎn)單的輸入輸出 向標(biāo)準(zhǔn)輸出設(shè)備(顯示器)輸出 例:int x; coutx;,3.2 選擇結(jié)構(gòu)程序設(shè)計(jì),321 if 語句 322 switch 語句,3.2.1 選擇結(jié)構(gòu)程序設(shè)計(jì),1 、基本if語句(一),格式:If ( ) 形式一: 執(zhí)行體為單條語句,帶分號(hào) if(a0) a-=5; a+=5; /if語句之外,2 、基本if語句(二) 格式:If ( ) 形式二: 執(zhí)行體為復(fù)合語句,整個(gè)if 語句結(jié)束不帶分號(hào) if(ab) /若ab int t=a; /則a與b交換 a=b; b=t; /功能:保持變量b始終為最大值 cout“The max is:”bn; /if語句之外,3 、 Ifelse語句(擴(kuò)展if語句),格式: If ( ) else ,4 、 if 語句嵌套 一般形式: if( ) if( ) 語句 1 else 語句 2 else if( ) 語句 3 else 語句 4 特點(diǎn):if子句或else子句又包含ifelse語句 注意:語句 1、2、3、4 可以是復(fù)合語句,每層的 if 與 else 配對(duì),或用 來確定層次關(guān)系。,C+規(guī)定: else關(guān)鍵字總是與它前面最近的未配對(duì)的可見的那個(gè)關(guān)鍵字配對(duì)。 例如: if( ) /第一個(gè)if if( ) /第二個(gè)if if( ) /第三個(gè)if else 注意:復(fù)合語句內(nèi)的 if 對(duì)其外面的else 是不可見的,嵌套if 語句 之階梯結(jié)構(gòu) 形式: if (表達(dá)式1) 語句1 else if (表達(dá)式2) 語句2 else if (表達(dá)式3) 語句3 else 語句 n 執(zhí)行流程:按順序檢測(cè) if 條件,一旦滿足則執(zhí)行相應(yīng) 的if子句,同時(shí)整個(gè)嵌套if 語句結(jié)束;否則執(zhí)行最后一 個(gè)else子句.,三種形式: if (表達(dá)式) 語句 例:if (xy) couty) coutx; else couty; if (表達(dá)式1) 語句1 else if (表達(dá)式2) 語句2 else if (表達(dá)式3) 語句3 else 語句 n 階梯結(jié)構(gòu)實(shí)例 將百分制成績(jī)轉(zhuǎn)換成字母等級(jí):,int Grade; cin Grade; if(=90) cout=80) cout=70) cout=60) cout“Dn”; else cout“En”;,322 switch 語句,格式: switch ( ) case : case : case : default : ,例:等級(jí)制轉(zhuǎn)換為百分制 char grade; cingrade; switch ( grade ) case A: Cout“100-99”endl; case B: Cout“89-80”endl; case C: Cout“79-60”endl; case D: Cout“Less than 60”endl; Default: Cout“Input error!n”; /執(zhí)行后不完全合意,1、switch開關(guān)語句特殊的多分支結(jié)構(gòu),switch ( ) case : break; case : break; default : ,例:等級(jí)制轉(zhuǎn)換為百分制 switch ( grade ) case A: cout“100-99”endl; break; case B: cout“89-80”endl; break; case C: cout“79-60”endl; break; case D: cout“Less than 60”endl; break; default: Cout“Input error!n”; /執(zhí)行,2、Switch與break聯(lián)用改進(jìn),3、Switch語句,一般形式 switch (表達(dá)式) case 常量表達(dá)式 1:語句1 case 常量表達(dá)式 2:語句2 case 常量表達(dá)式 n:語句n default : 語句n+1 ,執(zhí)行順序 以case中的常量表達(dá)式值為入口標(biāo)號(hào),由此開始順序執(zhí)行。因此,每個(gè)case分支最后應(yīng)該加break語句。,4、break語句 使程序從switch語句內(nèi)跳出(另還可從循環(huán)體跳出) ,繼續(xù)執(zhí)行邏輯上的下一條語句。不宜用在別處。 5、使用switch語句應(yīng)注意的問題 case分支可包含多個(gè)語句,且不用 。 表達(dá)式、判斷值都是int型或char型。 若干分支執(zhí)行內(nèi)容相同可共用一組語句。,3.3 循環(huán)控制,331 while 語句 332 do-while 語句 333 for 語句,331 while 語句,求自然數(shù)1100之和” 我們知道是一個(gè)和累加運(yùn)算,是一個(gè)循環(huán)求和過程,同樣可以用while循環(huán)語句實(shí)現(xiàn)。,形式 while (表達(dá)式) 循環(huán)體語句,執(zhí)行順序(四步) (1)計(jì)算表達(dá)式的值,若為 true(非0)時(shí),則轉(zhuǎn)步驟(2);若為 false(0)時(shí),則轉(zhuǎn)步驟(4)。 (2)執(zhí)行一次循環(huán)體語句 (3)轉(zhuǎn)步驟(1) (4)結(jié)束并退出while循環(huán),#include using namespace std; void main() int i=1, sum=0; while(i=100) sum+=i; /相當(dāng)于sum=sum+i; i+; cout“sum= “ sumendl; ,運(yùn)行結(jié)果:sum=5050,執(zhí)行流程: int i=1, sum=0; /控制變量i 1-100,初始置1 /記錄累加和變量sum初始置0 控制變量 累加和 當(dāng)條件 循環(huán)體 i=1 sum=0 -true - sum+i=sum=1 i=2 sum=1 -true - sum+i=sum=3 i=3 sum=3 -true - sum+i=sum=6 i=4 sum=6 -true - sum+i=sum=10 i=100sum=4950-true - sum+i=sum=5050 i=101sum=5050-false- exit,循環(huán)體,當(dāng)條件,問題: 1+2+3+4+100,332 Dowhile循環(huán)語句,適用:先執(zhí)行循環(huán)體,后判斷條件的情況 例: dowhile語句 輸入一個(gè)整數(shù),將各位數(shù)字反轉(zhuǎn)后輸出。,#include using namespace std; int main() int n, right_digit; cout n; / n 保存輸入的整數(shù) cout “The number in reverse order is “;,do right_digit = n % 10;/ 對(duì)n求模取出當(dāng)前個(gè)位數(shù) cout right_digit; n /= 10; / 即n=n/10運(yùn)算,相當(dāng)于對(duì)n右移一位,去掉已取出的個(gè)位數(shù) while (n != 0); coutendl; 運(yùn)行結(jié)果: Enter the number: 365 The number in reverse order is 563,直到型循環(huán)結(jié)構(gòu)與do-while 語句,一般形式 do 語句 while (表達(dá)式),執(zhí)行順序 先執(zhí)行循環(huán)體語句,后判斷條件。 表達(dá)式為 true 時(shí),繼續(xù)執(zhí)行循環(huán)體,*while語句與do-while語句的區(qū)別:,一般形式比較 while (表達(dá)式) do 語句 語句 while (表達(dá)式),執(zhí)行流程最大區(qū)別 while先判斷控制循環(huán)的條件,后執(zhí)行循環(huán)體;dowhile先執(zhí)行循環(huán)體,后判斷控制循環(huán)的條件。 結(jié)果比較: While語句的循環(huán)體可能有時(shí)一次也不做; Dowhile語句的循環(huán)體任何情況下至少要做一次。,333 for 語句,求自然數(shù)1100之和問題。 分析:本題需要用累加算法,累加過程是一個(gè)循環(huán)過程,可以用for語句實(shí)現(xiàn)。,語法形式 for (表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句 執(zhí)行流程(五步),#include using namespace std; int main() int i, sum=0; /控制變量和記錄累加和變量 for(i=1;i=100;i+) sum+=i; /相當(dāng)于sum=sum+i; cout“sum=“sum endl; ,運(yùn)行結(jié)果: sum=5050,無循環(huán)語句編程 (2*100條語句) int i, sum=0; / i=1; sum+=i; i=2; sum+=i; i=3; sum+=i; i=100; sum+=i;,for 語句舉例: 編寫程序輸出以下圖案,* * * * * * *,#include using namespace std; void main() int i,j,n=4; for(i=1;i=n;i+) /輸出前4行圖案 for(j=1;j=30;j+) cout ; /在圖案左側(cè)空30列 for(j=1; j=8-2*i ;j+) cout ; for(j=1; j=2*i-1 ;j+) cout*; coutendl; ,31,for(i=1;i=n-1;i+) /輸出后3行圖案 for(j=1;j

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論