C++程序設(shè)計 - 第4章 控制語句.ppt_第1頁
C++程序設(shè)計 - 第4章 控制語句.ppt_第2頁
C++程序設(shè)計 - 第4章 控制語句.ppt_第3頁
C++程序設(shè)計 - 第4章 控制語句.ppt_第4頁
C++程序設(shè)計 - 第4章 控制語句.ppt_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、控制語句,面向過程的程序設(shè)計和算法,在面向過程的程序設(shè)計中,程序設(shè)計者必須指定計算機執(zhí)行的具體步驟,程序設(shè)計者不僅要考慮程序要“做什么”,還要解決“怎么做”的問題,根據(jù)程序要“做什么”的要求,寫出一個個語句,安排好它們的執(zhí)行順序。怎樣設(shè)計這些步驟,怎樣保證它的正確性和具有較高的效率,這就是算法需要解決的問題。,算法的概念,一個面向過程的程序應(yīng)包括以下兩方面內(nèi)容: (1) 對數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu)(data structure)。 (2) 對操作的描述。即操作步驟,也就是算法(algorithm)。,對于面向過程的程序,可以用下面的公式表示: 程序=算法

2、+數(shù)據(jù)結(jié)構(gòu) 作為程序設(shè)計人員,必須認(rèn)真考慮和設(shè)計數(shù)據(jù)結(jié)構(gòu)和操作步驟(即算法)。 算法是處理問題的一系列的步驟。算法必須具體地指出在執(zhí)行時每一步應(yīng)當(dāng)怎樣做。所以算法包含兩個含義: 1.執(zhí)行的動作; 2.這些動作執(zhí)行的順序;,不要認(rèn)為只有“計算”的問題才有算法。廣義地說,為解決一個問題而采取的方法和步驟,就稱為“算法”。 計算機算法可分為兩大類別:數(shù)值算法和非數(shù)值算法。數(shù)值算法的目的是求數(shù)值解。非數(shù)值算法包括的面十分廣泛,最常見的是用于事務(wù)管理領(lǐng)域。目前,計算機在非數(shù)值方面的應(yīng)用遠(yuǎn)遠(yuǎn)超過了在數(shù)值方面的應(yīng)用。,C+既支持面向過程的程序設(shè)計,又支持面向?qū)ο蟮某绦蛟O(shè)計。無論面向過程的程序設(shè)計還是面向?qū)ο?/p>

3、的程序設(shè)計,都離不開算法設(shè)計。,算法的表示,1. 自然語言 用中文或英文等自然語言描述算法。但容易產(chǎn)生歧義性,在程序設(shè)計中一般不用自然語言表示算法。 2. 流程圖 可以用傳統(tǒng)的流程圖或結(jié)構(gòu)化流程圖。用圖的形式表示算法,比較形象直觀,但修改算法時顯得不大方便。 3. 偽代碼(pseudo code) 偽代碼是用介于自然語言和計算機語言之間的文字和符號來描述算法。如,If (students grade is greater than or equal to 60) Print “Passed” 用偽代碼寫算法并無固定的、嚴(yán)格的語法規(guī)則,只需把意思表達(dá)清楚,并且書寫的格式要寫成清晰易讀的形式。它不

4、用圖形符號,因此書寫方便、格式緊湊,容易修改,便于向計算機語言算法(即程序)過渡。 if(grade=60) cout“Passed”;,控制語句,聲明語句 表達(dá)式語句 選擇語句 循環(huán)語句 跳轉(zhuǎn)語句 復(fù)合語句,表達(dá)式語句,格式: 表達(dá)式; 表達(dá)式語句與表達(dá)式的區(qū)別: 表達(dá)式可以包含在其它表達(dá)式中,而語句不可。 例:if (a=b)0) t=a; 不可寫為:if (a=b;)0) t=a;,復(fù)合語句,將多個語句用一對大括號包圍,便構(gòu)成一個復(fù)合語句 例如 sum=sum+i; i+; ,順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu),算法的基本控制結(jié)構(gòu),如何解決分支問題?,例 輸入一個年份,判斷是否閏年。,#inc

5、lude using namespace std; void main() int year; bool IsLeapYear; cout year; IsLeapYear = (year % 4 = 0 ,14,運行結(jié)果: Enter the year: 2000 2000 is a leap year,15,If (表達(dá)式) 語句1 ; 或者 if (表達(dá)式) 語句1; . 語句n; 例1:if (xy) couty) coutx; coutendl;,if 語句 三種形式,if (表達(dá)式) 語句1; . 語句n; else 語句2;. 語句n;,if ( 表達(dá)式 ) 語句1; else

6、語句2; 例:if (xy) coutx; else couty;,if 語句 三種形式,圖,if 語句 三種形式,if (表達(dá)式1) 語句1else if (表達(dá)式2) 語句2else if (表達(dá)式3) 語句3 else 語句 n,if (表達(dá)式1) 語句1; .語句nelse if (表達(dá)式2) 語句1; .語句nelse if (表達(dá)式3) 語句1; .語句n else 語句1; .語句n,說明: (1) 從圖可以看到: 3種形式的if語句都是由一個入口進來,經(jīng)過對“表達(dá)式”的判斷,分別執(zhí)行相應(yīng)的語句,最后歸到一個共同的出口。這種形式的程序結(jié)構(gòu)稱為選擇結(jié)構(gòu)。在C+中if語句是實現(xiàn)選擇結(jié)

7、構(gòu)主要的語句。,(2) 3種形式的if語句中在if后面都有一個用括號括起來的表達(dá)式,它是程序編寫者要求程序判斷的“條件”,一般是邏輯表達(dá)式或關(guān)系表達(dá)式。 (3) 第2、第3種形式的if語句中,在每個else前面有一分號,整個語句結(jié)束處有一分號。,(4) 在if和else后面可以只含一個內(nèi)嵌的操作語句,也可以有多個操作語句,此時用花括號“”將幾個語句括起來成為一個復(fù)合語句。,在if語句中又包含一個或多個if語句稱為if語句的嵌套。 if ( ) if ( ) 語句 1 else 語句 2 else if ( ) 語句 3 else 語句 4 注意 語句 1、2、3、4 可以是復(fù)合語句,每層的 i

8、f 與 else 配對,或用 來確定層次關(guān)系。,在if語句中又包含一個或多個if語句稱為if語句的嵌套。一般形式如下: if( ) if( )語句1 else 語句2 內(nèi)嵌if else if( )語句3 else 語句4 內(nèi)嵌if 應(yīng)當(dāng)注意if與else的配對關(guān)系。else總是與它上面最近的、且未配對的if配對。假如寫成,if 語句 嵌套,if( ) if( )語句1 else if( )語句2 else 語句3 內(nèi)嵌if,編程序者把第一個else寫在與第一個if(外層if)同一列上,希望else與第一個if對應(yīng),但實際上else是與第二個if配對,因為它們相距最近,而且第二個if并未與任何

9、else配對。為了避免誤用,最好使每一層內(nèi)嵌的if語句都包含else子句(如本節(jié)開頭列出的形式),這樣if的數(shù)目和else的數(shù)目相同,從內(nèi)層到外層一一對應(yīng),不致出錯。,if 語句 嵌套,如果if與else的數(shù)目不一樣,為實現(xiàn)程序設(shè)計者的企圖,可以加花括號來確定配對關(guān)系。例如: if( ) if ( ) 語句1 /這個語句是上一行if語句的內(nèi)嵌if else 語句2 /本行與第一個if配對 這時 限定了內(nèi)嵌if語句的范圍, 外的else不會與 內(nèi)的if配對。關(guān)系清楚,不易出錯。,if 語句 嵌套,如何解決多分問題?,例 輸入兩個整數(shù),比較兩個數(shù)的大小。,#include using namesp

10、ace std; void main() int x,y; coutxy; if (x!=y) if (xy) coutyendl; else coutxyendl; else coutx=yendl; ,29,運行結(jié)果1: Enter x and y:5 8 xy,30,例:輸入一個字符,判別它是否為大寫字母,如果是,將它轉(zhuǎn)換成小寫字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符。,#include using namespace std; int main( ) char ch; cinch; ch=(ch=A ,循環(huán)結(jié)構(gòu)和循環(huán)語句,在人們所要處理的問題中常常遇到需要反復(fù)執(zhí)行某一操作的情況。這就需要用到循環(huán)控制。許多應(yīng)用程序都包含循環(huán)。,34,while 語句,形式 while (表達(dá)式) 語句,執(zhí)行順序 先判斷表達(dá)式的值,若為 true 時,執(zhí)行語句。其作用是: 當(dāng)指定的條件為真(表達(dá)式為非0)時,執(zhí)行while語句中的內(nèi)嵌語句。其特點是:先判斷表達(dá)式,后執(zhí)行語句。while循環(huán)稱為當(dāng)型循環(huán)。,需要注意: (1) 循環(huán)體如果包含一個以上的語句,應(yīng)該用花括號括起來,以復(fù)合語句形式出現(xiàn)。如果不加花括號,則while語句的范圍只到while后面第一個分號處。 (2) 在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語句。,37,如何有效地完成重復(fù)工作,

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論