




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五講嵌套結(jié)構(gòu)第1頁,課件共48頁,創(chuàng)作于2023年2月2主要內(nèi)容第一講嵌套結(jié)構(gòu)第二講模塊化結(jié)構(gòu)第三講其它控制結(jié)構(gòu)語句介紹第四講反向數(shù)據(jù)傳遞--輸出參數(shù)第五講數(shù)據(jù)文件涉及課本內(nèi)容:第3,4,5,8.1,8.2,12章第2頁,課件共48頁,創(chuàng)作于2023年2月3第一講嵌套結(jié)構(gòu)第3頁,課件共48頁,創(chuàng)作于2023年2月4主要內(nèi)容嵌套結(jié)構(gòu):自頂向下,逐步細(xì)化的分析的結(jié)果選擇嵌套結(jié)構(gòu)—if深入循環(huán)嵌套結(jié)構(gòu)復(fù)合嵌套結(jié)構(gòu)嵌套結(jié)構(gòu)的典型算法第4頁,課件共48頁,創(chuàng)作于2023年2月5嵌套結(jié)構(gòu)自頂向下,逐步細(xì)化的分析的結(jié)果第5頁,課件共48頁,創(chuàng)作于2023年2月6程序的三種基本控制結(jié)構(gòu)Bohra和Jacopini提出了以下三種基本結(jié)構(gòu):順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)用這三種基本結(jié)構(gòu)作為表示一個(gè)良好算法的基本單元。第6頁,課件共48頁,創(chuàng)作于2023年2月7順序結(jié)構(gòu)選擇結(jié)構(gòu)三種基本結(jié)構(gòu)的圖示循環(huán)結(jié)構(gòu)第7頁,課件共48頁,創(chuàng)作于2023年2月8三種基本結(jié)構(gòu)的共同特點(diǎn)(1)只有一個(gè)入口。(2)只有一個(gè)出口。(請(qǐng)注意:一個(gè)菱形判斷框有兩個(gè)出口,而一個(gè)選擇結(jié)構(gòu)只有一個(gè)出口。不要將菱形框的出口和選擇結(jié)構(gòu)的出口混淆。)(3)結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到。(4)結(jié)構(gòu)內(nèi)不存在“死循環(huán)”(無終止的循環(huán))。第8頁,課件共48頁,創(chuàng)作于2023年2月9嵌套結(jié)構(gòu)三種基本結(jié)構(gòu)中的語句組(順序語句組、if分支語句組、else分支語句組、循環(huán)體語句組)可以包含任意結(jié)構(gòu)的語句,從而形成不同的嵌套結(jié)構(gòu)。嵌套結(jié)構(gòu)沒有特定的結(jié)構(gòu)形式,由分析方法自然形成第9頁,課件共48頁,創(chuàng)作于2023年2月10嵌套結(jié)構(gòu)示例:
求n個(gè)數(shù)中的最大值(sample02_01.cpp)輸入n輸入第一個(gè)數(shù),假定為最大值max循環(huán)i從2到n,step1輸入一個(gè)數(shù)到x如果x比假定最大值max還大,則修正max為x輸出max的值循環(huán)體嵌套:順序語句選擇語句第10頁,課件共48頁,創(chuàng)作于2023年2月11if語句深入復(fù)雜條件表示邏輯運(yùn)算符連接多個(gè)條件if語句的多種結(jié)構(gòu)if和else的匹配原則第11頁,課件共48頁,創(chuàng)作于2023年2月復(fù)雜條件的表示x是一個(gè)介于0到10的數(shù)0<=x<=10錯(cuò)誤:二目運(yùn)算值恒為1邏輯應(yīng)為:x>=0并且x<=10x>=0&&x<=1012第12頁,課件共48頁,創(chuàng)作于2023年2月13邏輯運(yùn)算符邏輯運(yùn)算符(1)&&(邏輯與)相當(dāng)于其他語言中的AND(2)||(邏輯或)相當(dāng)于其他語言中的OR(3)!(邏輯非)相當(dāng)于其他語言中的NOT優(yōu)先次序!(非)->&&()->||()邏輯運(yùn)算符中的“&&”和“||”低于關(guān)系運(yùn)算符,“!”高于算術(shù)運(yùn)算符例:a&&b若a,b為真,則a&&b為真。
a||b若a,b之一為真,則a||b為真。!a若a為真,則!a為假。第13頁,課件共48頁,創(chuàng)作于2023年2月14
邏輯表達(dá)式
例:設(shè)a=4,b=5:!a的值為0a&&b的值為1a||b的值為1!a||b的值為14&&0||2的值為1任何非零的數(shù)值被認(rèn)作“真”用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來的式子就是邏輯表達(dá)式。邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量“真”或“假”。C語言對(duì)應(yīng)計(jì)算值1或0第14頁,課件共48頁,創(chuàng)作于2023年2月15邏輯表達(dá)式示例
例:5>3&&8<4-!0
自左向右運(yùn)算
1&&0邏輯值為08<3邏輯值為04-1值為3!0邏輯值為15>3邏輯值為1表達(dá)式值為0第15頁,課件共48頁,創(chuàng)作于2023年2月16邏輯表達(dá)式的優(yōu)化原則在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都要被執(zhí)行。(1)a&&b&&c只有a為真時(shí),才需要判斷b的值,只有a和b都為真時(shí),才需要判斷c的值。(2)a||b||c只要a為真,就不必判斷b和c的值,只有a為假,才判斷b。a和b都為假才判斷c例:(m=a>b)&&(n=c>d)當(dāng)a=1,b=2,c=3,d=4,m和n的原值為1時(shí),由于“a>b”的值為0,因此m=0,而“n=c>d”不被執(zhí)行,因此n的值不是0而仍保持原值1。第16頁,課件共48頁,創(chuàng)作于2023年2月17復(fù)雜條件示例
用邏輯表達(dá)式來表示閏年的條件能被4整除,但不能被100整除。能被4整除,又能被400整除。?答
(year%4==0&&year%100!=0)||year%400==0案
值為真(1)是閏年,否則為非閏年。第17頁,課件共48頁,創(chuàng)作于2023年2月18if語句的多種結(jié)構(gòu)雙分支結(jié)構(gòu)單分支結(jié)構(gòu)嵌套結(jié)構(gòu)多分支結(jié)構(gòu)第18頁,課件共48頁,創(chuàng)作于2023年2月19單分支結(jié)構(gòu)if(條件)語句if(c==m)m=m;elsem=c;if(c!=m)m=c;常見錯(cuò)誤示范語句1表達(dá)式真假第19頁,課件共48頁,創(chuàng)作于2023年2月單分支結(jié)構(gòu)示例-求絕對(duì)值#include<stdio.h>intmain(void){intnumber; printf("Enteranumber:");scanf("%d",&number);if(number<0){number=-number;}printf("Theabsolutevalueis%d.\n",number);return0;}20Enteranumber:10
Theabsolutevalueis10.Enteranumber:-300
Theabsolutevalueis300.sample02_02.cpp第20頁,課件共48頁,創(chuàng)作于2023年2月21選擇嵌套結(jié)構(gòu)在if語句中又包含一個(gè)或多個(gè)if語句稱為if語句的嵌套第21頁,課件共48頁,創(chuàng)作于2023年2月22完整嵌套結(jié)構(gòu)if(條件1)if(條件2)語句1else
語句2else
if(條件3)語句3else
語句4表達(dá)式1表達(dá)式3語句4真假表達(dá)式2語句3語句1語句2真真假假第22頁,課件共48頁,創(chuàng)作于2023年2月23多分支結(jié)構(gòu)if(表達(dá)式1)語句1elseif(表達(dá)式2)語句2……elseif(表達(dá)式n-1)語句n-1else語句n第23頁,課件共48頁,創(chuàng)作于2023年2月24多分支結(jié)構(gòu)圖示第24頁,課件共48頁,創(chuàng)作于2023年2月25多分支示例-分段計(jì)算水費(fèi)sample02_03.cpp#include<stdio.h>intmain(void){doublex,y;printf("Enterx:");scanf("%lf",&x);if(x<0){y=0;}elseif(x<=15){y=4*x/3;}else{y=2.5*x-10.5;}printf("f(%.2f)=%.2f\n",x,y);return0;}Enterx:-0.5f(-0.50)=0.00Enterx:9.5f(9.50)=12.67Enterx:21.3f(21.30)=42.75Enterx:?第25頁,課件共48頁,創(chuàng)作于2023年2月26不對(duì)稱嵌套結(jié)構(gòu)示例:
求實(shí)足年齡sample02_04.cpp
age=sysY-bthY;if(sysM<bthM)age=age-1;elseif(sysM==bthM)if(sysD<bthD) age=age-1;年齡=當(dāng)前年份-生日年份如果生日月份還沒到年齡減一歲否則如果生日月份已到但生日還沒到年齡減一歲age=sysY-bthY;if(sysM<bthM)age=age-1;elseif((sysM==bthM)&&(sysD<bthD)) age=age-1;第26頁,課件共48頁,創(chuàng)作于2023年2月272種嵌套if語句的比較if(x<1)y=x+1;elseif(x<2)y=x+2;elsey=x+3;if(x<2)if(x<1)y=x+1;elsey=x+2;elsey=x+3;
x<2x<1y=x+1y=x+2真
假真
y=x+3假假x<1x<2y=x+1y=x+2真
假真
y=x+3第27頁,課件共48頁,創(chuàng)作于2023年2月28else和if的匹配if(表達(dá)式1)if(表達(dá)式2)語句1else語句2elseif(表達(dá)式3)語句3else語句4if(表達(dá)式1)if(表達(dá)式2)語句1
elseif(表達(dá)式3)語句3else語句4else與最靠近它的、沒有與別的else匹配過的if匹配if(表達(dá)式1)if(表達(dá)式2)語句1elseif(表達(dá)式3)語句3else語句4第28頁,課件共48頁,創(chuàng)作于2023年2月29改變else和if的配對(duì)例3-10改寫下列if語句,使else和第1個(gè)if配對(duì)。if(x<2)if(x<1)y=x+1;elsey=x+2;if(x<2){if(x<1)y=x+1;}elsey=x+2;if(x<2)if(x<1)y=x+1;else;elsey=x+2;每條語句的執(zhí)行條件?
第29頁,課件共48頁,創(chuàng)作于2023年2月作業(yè):寫出下列表達(dá)式判斷char型變量ch是否為大寫字母判斷整型變量A的值是否為奇數(shù)判斷整型變量x是否為1-100間的整數(shù)第30頁,課件共48頁,創(chuàng)作于2023年2月31循環(huán)嵌套結(jié)構(gòu)循環(huán)結(jié)構(gòu)體里包含其它循環(huán)結(jié)構(gòu)第31頁,課件共48頁,創(chuàng)作于2023年2月32循環(huán)嵌套結(jié)構(gòu)(一)統(tǒng)計(jì)
sample02_05.cpp輸入n個(gè)學(xué)生的學(xué)號(hào)和5門功課成績(jī)求每位同學(xué)的總分和平均分,最后輸出班級(jí)平均總分,最高總分和學(xué)號(hào)每位同學(xué)的總分sum班級(jí)總分total最高總分max最高分學(xué)號(hào)maxno第32頁,課件共48頁,創(chuàng)作于2023年2月33算法1.total=0,max=-1,maxno=-12.循環(huán)i從1到nstep1(1)輸入學(xué)號(hào)
(2)sum=0(3)循環(huán)j從1到5step1
輸入一個(gè)成績(jī)xsum=sum+x(4)輸出該學(xué)生的學(xué)號(hào),總分和平均分
(5)total=total+sum(6)如果該學(xué)生的總分比max高,修正max和maxno3.輸出班級(jí)總分和平均分,最高分學(xué)生的學(xué)號(hào)和總分第33頁,課件共48頁,創(chuàng)作于2023年2月34循環(huán)嵌套結(jié)構(gòu)(二)畫圖形畫圖形:n行
i空格星號(hào)
5143352719011n-i2*i-1第34頁,課件共48頁,創(chuàng)作于2023年2月35分析過程循環(huán)i從1到n行step1
輸出一行輸出一行1.輸出空格2.輸出星號(hào)3.回車輸出空格循環(huán)j從1到n-i
輸出一個(gè)空格輸出星號(hào)循環(huán)j從1到2*i-1
輸出一個(gè)星號(hào)第35頁,課件共48頁,創(chuàng)作于2023年2月36算法
sample02_06.cpp循環(huán)i從1到n行step11.輸出空格循環(huán)j從1到n-i
輸出一個(gè)空格
2.輸出星號(hào)循環(huán)j從1到2*i-1
輸出一個(gè)星號(hào)
3.回車//循環(huán)i從1到n行step1for(i=1;i<=n;i++){//1.輸出空格
for(j=1;j<=n-i;j++)printf("");//2.輸出星號(hào)
for(j=1;j<=2*i-1;j++)printf("*");//3.回車
printf("\n");}第36頁,課件共48頁,創(chuàng)作于2023年2月37復(fù)合嵌套結(jié)構(gòu)選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)相互嵌套第37頁,課件共48頁,創(chuàng)作于2023年2月38復(fù)合嵌套結(jié)構(gòu)(一)求素?cái)?shù)判斷一個(gè)數(shù)是不是素?cái)?shù)求100以內(nèi)的全部素?cái)?shù)例4-9sample02_07.cpp第38頁,課件共48頁,創(chuàng)作于2023年2月39判斷一個(gè)數(shù)n是不是素?cái)?shù)定義:除了1和本身,不能2到n-1的數(shù)整除的數(shù)。算法循環(huán)i從2到n-1如果n能被i整除跳出循環(huán)如果i<n則不是素?cái)?shù)否則是素?cái)?shù)第39頁,課件共48頁,創(chuàng)作于2023年2月40求100以內(nèi)的全部素?cái)?shù)分析循環(huán)i從3到100
如果i是一個(gè)素?cái)?shù)則輸出第40頁,課件共48頁,創(chuàng)作于2023年2月41算法:求100以內(nèi)的全部素?cái)?shù)循環(huán)i從3到100m=sqrt(i)循環(huán)j從2到m如果i能被j整除跳出循環(huán)如果i>m則是素?cái)?shù),輸出第41頁,課件共48頁,創(chuàng)作于2023年2月42復(fù)合嵌套結(jié)構(gòu)(二)窮舉法窮舉所有可能的方案,對(duì)每一種方案檢查是否符合約束條件。找出所有可能的解第42頁,課件共48頁,創(chuàng)作于2023年2月break語句-跳出一層控制結(jié)構(gòu)
43真假
exp
語句1假expb
語句2循環(huán)體真第43頁,課件共48頁,創(chuàng)作于2023年2月帶break語句的循環(huán)控制for(;符合循環(huán)的條件;){......if(結(jié)束循環(huán)的條件)break;}44第44頁,課件共48頁,創(chuàng)作于2023年2月45窮舉法舉例:例4-11搬磚問題sample02_08_1.cpp某地需要搬運(yùn)磚塊,已知男人一人搬3塊,女人一人搬2塊,小孩兩人搬一塊。問用45人正好搬45塊磚,有多少種
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園員工聘用合同
- 流通經(jīng)銷合同8篇
- 《無機(jī)化學(xué)》課程標(biāo)準(zhǔn)
- 出口賠償合同范本
- 個(gè)人英語學(xué)習(xí)計(jì)劃
- 三年級(jí)語文下冊(cè)工作總結(jié)
- 南車 合同范本
- 雙方合作生產(chǎn)經(jīng)營(yíng)合同范例
- 廚房工作人員勞務(wù)合同范本
- 會(huì)計(jì)記賬報(bào)稅合同范本
- 衛(wèi)生部病歷質(zhì)量評(píng)價(jià)標(biāo)準(zhǔn)
- 乘坐地鐵安全指南(課件)-小學(xué)生主題班會(huì)通用版
- 中國(guó)石油高效集中的資金管理
- GB/T 17421.2-2023機(jī)床檢驗(yàn)通則第2部分:數(shù)控軸線的定位精度和重復(fù)定位精度的確定
- 重慶市渝北區(qū)大灣鎮(zhèn)招錄村綜合服務(wù)專干模擬預(yù)測(cè)(共500題)筆試參考題庫(kù)+答案詳解
- 矢量分析和場(chǎng)論基礎(chǔ)
- 進(jìn)步粘滯流體阻尼器埋件的一次驗(yàn)收合格率
- 小升初面試英語自我介紹范文4篇
- 高職院校創(chuàng)新創(chuàng)業(yè)教育數(shù)字化轉(zhuǎn)型和改革研究
- 酒店住宿水單模板-可修改
- 合作公司變更函范文(必備6篇)
評(píng)論
0/150
提交評(píng)論