順序語句和選擇語句.ppt_第1頁
順序語句和選擇語句.ppt_第2頁
順序語句和選擇語句.ppt_第3頁
順序語句和選擇語句.ppt_第4頁
順序語句和選擇語句.ppt_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2020/7/30,1,3.1編程概述3.2 scanf()函數(shù)3.3程序的三個茄子基本結(jié)構(gòu)3.4 if語句3.5 switch語句3.6編程示例,第三章順序語句和可選語句,2020/7/30,2 1969年,Dijkstra,2020/7/30,3,高質(zhì)量程序必須穩(wěn)定、易于閱讀、高效、適應性強、可移植。編程方法:將問題分析輸入、輸出、算法繪圖程序的基本輪廓設(shè)計處理過程定義程序以特定語言實現(xiàn),將想法轉(zhuǎn)換為程序。可以通過在2020/7/30,4、表達式語句、表達式后添加分號來構(gòu)造簡單的語句表達式語句。例如,a=a c*(D3)a=a c*(D3);A b c a b c;I I函數(shù)調(diào)用也是表達式

2、,后面加分號將成為函數(shù)調(diào)用語句。printf(“hello!);scanf(“% d”,b=2.0);I;復句在語法上等于一個語句。2020/7/30,6,3.2 scanf()函數(shù),3.2.1數(shù)據(jù)輸入概念3.2.2 scanf()函數(shù)調(diào)用3.2.3字符輸入函數(shù)3.2.取得圓面積的下列程序# include # define pi 3.14159 void main()float r,arear=4;Area=PI * r * rPrintf(The area is %fn,area);2020/7/30,8,缺陷:只能計算半徑為固定值4的圓的面積,不能輸出其他半徑的圓面積。解決方法:添加數(shù)據(jù)

3、輸入語句。在運行時,將所需數(shù)據(jù)作為變量值輸入到外部。缺陷和解決方法,2020/7/30,9,3.2.2 scanf()函數(shù)調(diào)用,scanf()函數(shù)的通用格式為scanf(輸入控制,輸入數(shù)據(jù)表列)。輸入控件的含義與printf()函數(shù)的輸出控件相同。輸入數(shù)據(jù)表列是一個或多個變量(以逗號分隔)的地址或字符串中的第一個地址。變量的地址由地址運算符“char x,y;Scanf (%c% c ,2020/7/30,15,3.2.3文字輸入函數(shù),getchar():用于輸入文字常數(shù)。如果沒有參數(shù),則函數(shù)的返回值是從鍵盤輸入的字符。是顯示從鍵盤輸入的字符。# include void main()char

4、 c;c=getchar();Printf(%c,c);程序使用getchar()從鍵盤輸入中獲取文字常量,將其分配給文字變量c,然后輸出文字。2020/7/30,16,3.2.4文字輸出函數(shù),putchar():文字輸出函數(shù)。功能:將字符輸出到標準設(shè)備(通常是顯示器)。put char(c);結(jié)果:輸出文字變數(shù)c的值。2020/7/30,17,例如,將從鍵盤輸入的文字顯示為putchar()。,# include void main()char c;c=getchar();put char(c);c=getchar();put char(c);合并為:put char(getchar();2

5、020/7/30,18,算法的說明流程圖,以及實現(xiàn)解決方案需要完成的一系列任務的圖形表示。為了達到以下目的,一眼就能理解:程序易于查看和修改。提供有效的節(jié)目文檔。解析器和討論解決方案變得容易了。開始框或結(jié)束框“處理框”-計算步驟輸入或輸出框確定框連接器:一個程序的兩個部分之間的連接程序的處理行注釋、2020/7/30,20、現(xiàn)有流程圖中的符號連接器、為復雜問題準備流程圖時,流程圖可能不會放在一頁上。直接連接所有塊可能會更困難。流程圖可以分為多個部分。連接器可用于指定連接位置。指定連接器的唯一數(shù)目。圖表中斷處的箭頭表示該點。2020/7/30,21,現(xiàn)有流程22,流程圖中的幾個茄子提示,在繪制流

6、程圖時需要記住的幾個茄子要點:開始關(guān)注問題的邏輯,繪制流程圖的基本路徑。完成基本路徑后,添加分支和回路。流程圖只能包含起點和終點,如果可能,可以獨立維護流程圖。不要使用電腦相關(guān)術(shù)語。不必在流程圖中繪制程序的所有步驟。使用描述性術(shù)語表示問題的邏輯結(jié)構(gòu)。不要使用模糊的單詞。使其他程序員或用戶更容易理解流程圖。2020/7/30,23,結(jié)構(gòu)化編程的基本思想是,所有程序都可以用三個茄子基本結(jié)構(gòu)實現(xiàn),順序結(jié)構(gòu)的節(jié)目流按語句的編寫順序執(zhí)行。選擇結(jié)構(gòu)由給定的條件決定,判斷的結(jié)果決定運行兩條或多條路徑中的一條。循環(huán)結(jié)構(gòu)是在給定條件成立時重復稱為“循環(huán)體”的節(jié)目段。3.3程序的三個茄子基本結(jié)構(gòu),2020/7/3

7、0,24,3.4 if條件語句,3.4.1 if語句的三個茄子格式3.4.2 if語句的嵌套,2020/7/30,25的值為0(即 false )其中,if(表達式)后面的語句可以是一個語句,也可以是一個復合語句。2020/7/30,26,進程,表達式,語句,true(非0牙齒),表達式,false (0),2020/7/30打印(inputScanf(%f,),程序首先從鍵盤讀取r的值,然后確定r值是否大于0,如果大于0,則計算并輸出。否則,將不執(zhí)行計算。是使用鍵盤輸入圓的半徑。如果半徑小于或等于零,則不執(zhí)行計算。否則,計算圓的面積。2020/7/30,28,# include void m

8、ain()charc;c=getchar();If(c)!=#)put char(c);Purchar(c)輸出的字符為a 1,即b。例如:嘗試通過在鍵盤上輸入字母A來判斷下一次節(jié)目運行的結(jié)果。2020/7/30,29,例如,查找x的絕對值,從鍵盤輸入x。# include void main(void)int x;Scanf (%d ,2020/7/30,30,30,if-else結(jié)構(gòu)的通用格式是if(表達式)語句1 else語句2的功能。首先計算表達式的值,如果值不是0牙齒,則值為0時跳過語句1,運行語句2,然后向下運行if的后續(xù)語句。其中,門1和門2分別是一個門或一個復合門。2020/7

9、/30,31,進程,true(非0牙齒),表達式,語句1,false (0),表達式,語句2,2020/7/31,#Scanf(%d,%d,2020/7/30,33),程序中引入的變量max用于存儲a,b中最大的一個。如果是Ab,則A存儲在max中;否則,B存儲在max中。最后,輸出max的內(nèi)容。說明,2020/7/30,34,if(a);if(a)x=0;X=0;if(a);x=0;/error else x=1;2020/7/30,35,if語句使用要點,if語句的使用點1,語句塊:語句1和語句2可以是簡單語句,但通常是括在方括號中的復合語句。直接包圍的詞組。示例:只有一個if(ab)語句

10、時,您還可以按啟用打印節(jié)。x=1;最大值=a;2020/7/30,36,2;表達式:if語句中的表達式可以是任何類型。示例:if(a)printf(“% d”,a);If(3) printf(OK (ok )!“”);注意:“非零牙齒”和“0”的使用區(qū)分了if(x=1)和if(x=1)的差異。2020/7/30,37,if(表達式1)語句1;Else if(表達式2)語句2;Else if(表達式3)語句3;Else語句4;實現(xiàn)多分支選擇功能。3 .輸入if-else-if結(jié)構(gòu),2020/7/30,38,yesx的值,以獲得以下相應的y值:# include void main()float

11、Scanf(% f,2020/7/30,39,if語句嵌套使用點,1,if語句中if和else的配對關(guān)系是else始終位于其上的最近if配對寫入格式是否縮進與它們之間的配對無關(guān)。范例:If范例:If() if()陳述式區(qū)塊1 else陳述式區(qū)塊2,2020/7/30,40、if陳述式巢狀格式范例、if陳述式范例1與學生成績a、b、c、d、e層級:7079是c,6069是d,60分以下的e。輸入分數(shù)以確定和顯示等級。If語句示例2輸入年,以確定并顯示該年是否為閏年。閏年的條件是A。可以被4整除,但不能被100整除。b .可分為100,可分為400。2020/7/30,41,# include v

12、oidmain () float a,b,c,maxscanf(% f % f % f % f,yes)在鍵盤上輸入三個實數(shù)以獲取最大實數(shù)。if(ab)if(AC)max=a;else max=c;else if(BC)max=b;else max=c;Printf(Max=%fn,Max);說明:(1)程序引入了中間變量max以存儲最大數(shù)量。(2)嵌套在內(nèi)部層中的if語句可以在沒有花括號的情況下括起來。但是,為了使結(jié)構(gòu)更加明確,添加花括號并不需要。2020/7/30,43,3.5 switch語句,switch(多分支開關(guān)結(jié)構(gòu))語句格式:switch(表達式)case常量表達式n:語句組1

13、case常量表達式23360語句組2.2020/7/30,44,2020/7/30,45,switch語句,示例:記錄以下程序的輸出:# include void main(void)int x;Scanf (%d ,如果在鍵盤上輸入3,則輸出為: passfailpoor,2020/7/30,46)。switch后面的表達式值必須是整數(shù)或字符型,不能是實型。Case后面的表達式是可以獲得成型量或文字量的常數(shù)表達式。每個常量表達式的值必須不同。否則,會發(fā)生沖突。switch語句-使用點,2020/7/30,47,switch語句-使用點,3。表達式值與case后面的常量表達式匹配時為4 .“c

14、ase常量:”僅用作語句標簽。5.break語句在switch中的作用:在switch主體中強制轉(zhuǎn)到另一個語句,并且每個case后面必須有break語句(否則,節(jié)目執(zhí)行順序?qū)⒏?。可以省略default分支后的break。6.每個事例的出現(xiàn)順序不會影響過程的運行結(jié)果。2020/7/30,48,7。多個事例可以運行同一組門。8.如果所有情況都不一致,請運行default分支下的語句組n 1。這只能出現(xiàn)一次,通常放置在分支結(jié)構(gòu)的末端。對于沒有Default分支的switch語句,如果所有情況都不匹配,則不執(zhí)行任何操作。,switch語句-使用要點,2020/7/30,49,switch語句-示例

15、,Switch語句示例1:如果變量定義正確,則下一節(jié)目段的執(zhí)行結(jié)果為a=2,B=7;c=5;交換機(A0)case 13360交換機(b10)case 13360 printf();布列克;Case 0:printf(!);布列克;case 03360交換機(c=5)case 0: printf(*);布列克;case 13360 printf(#);布列克;default : printf(%);布列克;Default : printf(,2020/7/30,50,switch語句-示例,switch語句示例2:將if語句示例1替換為switch語句,學生成績?yōu)閍,b,c 8089為b)。7079是c,6069是d,60分以下的e。輸入分數(shù)以確定和顯示等級。2020/7/30,51,3.6程式設(shè)

溫馨提示

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

評論

0/150

提交評論