




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五講嵌套結(jié)構(gòu)第一頁(yè),共四十八頁(yè),2022年,8月28日2主要內(nèi)容第一講嵌套結(jié)構(gòu)第二講模塊化結(jié)構(gòu)第三講其它控制結(jié)構(gòu)語(yǔ)句介紹第四講反向數(shù)據(jù)傳遞--輸出參數(shù)第五講數(shù)據(jù)文件涉及課本內(nèi)容:第3,4,5,8.1,8.2,12章第二頁(yè),共四十八頁(yè),2022年,8月28日3第一講嵌套結(jié)構(gòu)第三頁(yè),共四十八頁(yè),2022年,8月28日4主要內(nèi)容嵌套結(jié)構(gòu):自頂向下,逐步細(xì)化的分析的結(jié)果選擇嵌套結(jié)構(gòu)—if深入循環(huán)嵌套結(jié)構(gòu)復(fù)合嵌套結(jié)構(gòu)嵌套結(jié)構(gòu)的典型算法第四頁(yè),共四十八頁(yè),2022年,8月28日5嵌套結(jié)構(gòu)自頂向下,逐步細(xì)化的分析的結(jié)果第五頁(yè),共四十八頁(yè),2022年,8月28日6程序的三種基本控制結(jié)構(gòu)Bohra和Jacopini提出了以下三種基本結(jié)構(gòu):順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)用這三種基本結(jié)構(gòu)作為表示一個(gè)良好算法的基本單元。第六頁(yè),共四十八頁(yè),2022年,8月28日7順序結(jié)構(gòu)選擇結(jié)構(gòu)三種基本結(jié)構(gòu)的圖示循環(huán)結(jié)構(gòu)第七頁(yè),共四十八頁(yè),2022年,8月28日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)”(無(wú)終止的循環(huán))。第八頁(yè),共四十八頁(yè),2022年,8月28日9嵌套結(jié)構(gòu)三種基本結(jié)構(gòu)中的語(yǔ)句組(順序語(yǔ)句組、if分支語(yǔ)句組、else分支語(yǔ)句組、循環(huán)體語(yǔ)句組)可以包含任意結(jié)構(gòu)的語(yǔ)句,從而形成不同的嵌套結(jié)構(gòu)。嵌套結(jié)構(gòu)沒(méi)有特定的結(jié)構(gòu)形式,由分析方法自然形成第九頁(yè),共四十八頁(yè),2022年,8月28日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)體嵌套:順序語(yǔ)句選擇語(yǔ)句第十頁(yè),共四十八頁(yè),2022年,8月28日11if語(yǔ)句深入復(fù)雜條件表示邏輯運(yùn)算符連接多個(gè)條件if語(yǔ)句的多種結(jié)構(gòu)if和else的匹配原則第十一頁(yè),共四十八頁(yè),2022年,8月28日復(fù)雜條件的表示x是一個(gè)介于0到10的數(shù)0<=x<=10錯(cuò)誤:二目運(yùn)算值恒為1邏輯應(yīng)為:x>=0并且x<=10x>=0&&x<=1012第十二頁(yè),共四十八頁(yè),2022年,8月28日13邏輯運(yùn)算符邏輯運(yùn)算符(1)&&(邏輯與)相當(dāng)于其他語(yǔ)言中的AND(2)||(邏輯或)相當(dāng)于其他語(yǔ)言中的OR(3)!(邏輯非)相當(dāng)于其他語(yǔ)言中的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為假。第十三頁(yè),共四十八頁(yè),2022年,8月28日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á)式或邏輯量連接起來(lái)的式子就是邏輯表達(dá)式。邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量“真”或“假”。C語(yǔ)言對(duì)應(yīng)計(jì)算值1或0第十四頁(yè),共四十八頁(yè),2022年,8月28日15邏輯表達(dá)式示例
例:5>3&&8<4-!0
自左向右運(yùn)算
1&&0邏輯值為08<3邏輯值為04-1值為3!0邏輯值為15>3邏輯值為1表達(dá)式值為0第十五頁(yè),共四十八頁(yè),2022年,8月28日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。第十六頁(yè),共四十八頁(yè),2022年,8月28日17復(fù)雜條件示例
用邏輯表達(dá)式來(lái)表示閏年的條件能被4整除,但不能被100整除。能被4整除,又能被400整除。?答
(year%4==0&&year%100!=0)||year%400==0案
值為真(1)是閏年,否則為非閏年。第十七頁(yè),共四十八頁(yè),2022年,8月28日18if語(yǔ)句的多種結(jié)構(gòu)雙分支結(jié)構(gòu)單分支結(jié)構(gòu)嵌套結(jié)構(gòu)多分支結(jié)構(gòu)第十八頁(yè),共四十八頁(yè),2022年,8月28日19單分支結(jié)構(gòu)if(條件)語(yǔ)句if(c==m)m=m;elsem=c;if(c!=m)m=c;常見(jiàn)錯(cuò)誤示范語(yǔ)句1表達(dá)式真假第十九頁(yè),共四十八頁(yè),2022年,8月28日單分支結(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第二十頁(yè),共四十八頁(yè),2022年,8月28日21選擇嵌套結(jié)構(gòu)在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱(chēng)為if語(yǔ)句的嵌套第二十一頁(yè),共四十八頁(yè),2022年,8月28日22完整嵌套結(jié)構(gòu)if(條件1)if(條件2)語(yǔ)句1else
語(yǔ)句2else
if(條件3)語(yǔ)句3else
語(yǔ)句4表達(dá)式1表達(dá)式3語(yǔ)句4真假表達(dá)式2語(yǔ)句3語(yǔ)句1語(yǔ)句2真真假假第二十二頁(yè),共四十八頁(yè),2022年,8月28日23多分支結(jié)構(gòu)if(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2……elseif(表達(dá)式n-1)語(yǔ)句n-1else語(yǔ)句n第二十三頁(yè),共四十八頁(yè),2022年,8月28日24多分支結(jié)構(gòu)圖示第二十四頁(yè),共四十八頁(yè),2022年,8月28日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:?第二十五頁(yè),共四十八頁(yè),2022年,8月28日26不對(duì)稱(chēng)嵌套結(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)前年份-生日年份如果生日月份還沒(méi)到年齡減一歲否則如果生日月份已到但生日還沒(méi)到年齡減一歲age=sysY-bthY;if(sysM<bthM)age=age-1;elseif((sysM==bthM)&&(sysD<bthD)) age=age-1;第二十六頁(yè),共四十八頁(yè),2022年,8月28日272種嵌套if語(yǔ)句的比較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第二十七頁(yè),共四十八頁(yè),2022年,8月28日28else和if的匹配if(表達(dá)式1)if(表達(dá)式2)語(yǔ)句1else語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3else語(yǔ)句4if(表達(dá)式1)if(表達(dá)式2)語(yǔ)句1
elseif(表達(dá)式3)語(yǔ)句3else語(yǔ)句4else與最靠近它的、沒(méi)有與別的else匹配過(guò)的if匹配if(表達(dá)式1)if(表達(dá)式2)語(yǔ)句1elseif(表達(dá)式3)語(yǔ)句3else語(yǔ)句4第二十八頁(yè),共四十八頁(yè),2022年,8月28日29改變else和if的配對(duì)例3-10改寫(xiě)下列if語(yǔ)句,使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;每條語(yǔ)句的執(zhí)行條件?
第二十九頁(yè),共四十八頁(yè),2022年,8月28日作業(yè):寫(xiě)出下列表達(dá)式判斷char型變量ch是否為大寫(xiě)字母判斷整型變量A的值是否為奇數(shù)判斷整型變量x是否為1-100間的整數(shù)第三十頁(yè),共四十八頁(yè),2022年,8月28日31循環(huán)嵌套結(jié)構(gòu)循環(huán)結(jié)構(gòu)體里包含其它循環(huán)結(jié)構(gòu)第三十一頁(yè),共四十八頁(yè),2022年,8月28日32循環(huán)嵌套結(jié)構(gòu)(一)統(tǒng)計(jì)
sample02_05.cpp輸入n個(gè)學(xué)生的學(xué)號(hào)和5門(mén)功課成績(jī)求每位同學(xué)的總分和平均分,最后輸出班級(jí)平均總分,最高總分和學(xué)號(hào)每位同學(xué)的總分sum班級(jí)總分total最高總分max最高分學(xué)號(hào)maxno第三十二頁(yè),共四十八頁(yè),2022年,8月28日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)和總分第三十三頁(yè),共四十八頁(yè),2022年,8月28日34循環(huán)嵌套結(jié)構(gòu)(二)畫(huà)圖形畫(huà)圖形:n行
i空格星號(hào)
5143352719011n-i2*i-1第三十四頁(yè),共四十八頁(yè),2022年,8月28日35分析過(guò)程循環(huán)i從1到n行step1
輸出一行輸出一行1.輸出空格2.輸出星號(hào)3.回車(chē)輸出空格循環(huán)j從1到n-i
輸出一個(gè)空格輸出星號(hào)循環(huán)j從1到2*i-1
輸出一個(gè)星號(hào)第三十五頁(yè),共四十八頁(yè),2022年,8月28日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.回車(chē)//循環(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.回車(chē)
printf("\n");}第三十六頁(yè),共四十八頁(yè),2022年,8月28日37復(fù)合嵌套結(jié)構(gòu)選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)相互嵌套第三十七頁(yè),共四十八頁(yè),2022年,8月28日38復(fù)合嵌套結(jié)構(gòu)(一)求素?cái)?shù)判斷一個(gè)數(shù)是不是素?cái)?shù)求100以?xún)?nèi)的全部素?cái)?shù)例4-9sample02_07.cpp第三十八頁(yè),共四十八頁(yè),2022年,8月28日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ù)第三十九頁(yè),共四十八頁(yè),2022年,8月28日40求100以?xún)?nèi)的全部素?cái)?shù)分析循環(huán)i從3到100
如果i是一個(gè)素?cái)?shù)則輸出第四十頁(yè),共四十八頁(yè),2022年,8月28日41算法:求100以?xún)?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ù),輸出第四十一頁(yè),共四十八頁(yè),2022年,8月28日42復(fù)合嵌套結(jié)構(gòu)(二)窮舉法窮舉所有可能的方案,對(duì)每一種方案檢查是否符合約束條件。找出所有可能的解第四十二頁(yè),共四十八頁(yè),2022年,8月28日break語(yǔ)句-跳出一層控制結(jié)構(gòu)
43真假
exp
語(yǔ)句1假expb
語(yǔ)句2循環(huán)體真第四十三頁(yè),共四十八頁(yè),2022年,8月28日帶break語(yǔ)句的循環(huán)控制for(;符合循環(huán)的條件;){......if(結(jié)束循環(huán)的條件)break;}44第四十四頁(yè),共四十八頁(yè),2022年,8月28日45窮舉法舉例:例4-11搬磚問(wèn)題sample02_08_1.cpp某地需要搬運(yùn)磚塊,已知男人一人搬3塊,女人一人搬2塊,小孩兩人搬一塊。問(wèn)用45人正好搬45塊磚,有多少種搬法
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 燃?xì)鈾C(jī)組知識(shí)培訓(xùn)課件
- 三農(nóng)村文化產(chǎn)業(yè)發(fā)展指南
- 手舊設(shè)備買(mǎi)賣(mài)合同
- 貨物運(yùn)輸效率統(tǒng)計(jì)表一
- 現(xiàn)代物流管理學(xué)試題集
- 合理膳食與食品安全課件2024-2025學(xué)年北師大版生物七年級(jí)下冊(cè)
- 氫能產(chǎn)業(yè)技術(shù)研發(fā)與應(yīng)用合作協(xié)議
- 制造業(yè)材料采購(gòu)與供應(yīng)鏈管理實(shí)務(wù)測(cè)試
- 運(yùn)輸合同包機(jī)運(yùn)輸合同
- 微信營(yíng)銷(xiāo)系統(tǒng)購(gòu)買(mǎi)和服務(wù)協(xié)議書(shū)
- 部編版五年級(jí)語(yǔ)文上冊(cè)快樂(lè)讀書(shū)吧測(cè)試題及答案
- 通信工程建設(shè)標(biāo)準(zhǔn)強(qiáng)制性條文匯編(2023版)-定額質(zhì)監(jiān)中心
- 《現(xiàn)代家政導(dǎo)論》電子教案 4.2模塊四項(xiàng)目二家政教育發(fā)展認(rèn)知
- 現(xiàn)代家政導(dǎo)論-課件 5.2.2認(rèn)識(shí)我國(guó)家政服務(wù)業(yè)
- 物流園區(qū)倉(cāng)儲(chǔ)管理手冊(cè)
- 職業(yè)技術(shù)學(xué)院《口腔頜面外科學(xué)》課程標(biāo)準(zhǔn)
- 高中英語(yǔ)北師大版(2019)必修第二冊(cè)Unit 5 Humans and Nature Lesson 1 A sea story 教學(xué)設(shè)計(jì)
- 港口液體危化品裝卸管理人員理論考試題及答案
- TSG ZF001-2006《安全閥安全技術(shù)監(jiān)察規(guī)程》
- 13《少年中國(guó)說(shuō)》課件
- 2024版小學(xué)英語(yǔ)新課程標(biāo)準(zhǔn)測(cè)試題及答案
評(píng)論
0/150
提交評(píng)論