版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C++語言程序設(shè)計(jì)第十一組C++語言程序設(shè)計(jì)第三章
控制語句C++語言程序設(shè)計(jì)1目錄C++語言程序設(shè)計(jì)2“算法的基本控制結(jié)構(gòu)選擇語句循環(huán)語句break語句和continue語句基本知識(shí)隨機(jī)數(shù)結(jié)構(gòu)嵌套編程技能跟蹤程序的執(zhí)行刨根問底C++語言程序設(shè)計(jì)3基本知識(shí)a3.1算法的基本控制結(jié)構(gòu)程序的三種基本控制結(jié)構(gòu)(1)順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)C++語言程序設(shè)計(jì)43.1算法的基本控制結(jié)構(gòu)算法(Algorithm)是解決特定問題的方法和具體步驟算法的描述方法偽代碼:采用類似計(jì)算機(jī)語言的分句格式,以自然語言描述算法。C++語言程序設(shè)計(jì)5“順序結(jié)構(gòu)”舉例:輸入圓的半徑;計(jì)算圓的面積;輸出圓的面積;“選擇結(jié)構(gòu)”舉例:if輸入的圓半徑大于0
計(jì)算圓的面積
顯示面積;else
顯示“輸入數(shù)據(jù)錯(cuò)誤”;“循環(huán)結(jié)構(gòu)”舉例:
i=1;
while(i小于等于30)do
{累加一個(gè)學(xué)生的成績(jī);
i等于i+1;
}3.1算法的基本控制結(jié)構(gòu)算法的描述方法流程圖開始/結(jié)束
執(zhí)行判斷聯(lián)系C++語言程序設(shè)計(jì)63.1算法的基本控制結(jié)構(gòu)算法的描述方法——流程圖C++語言程序設(shè)計(jì)73.1算法的基本控制結(jié)構(gòu)例3-1用輾轉(zhuǎn)相除法求兩個(gè)自然數(shù)m和n的最大公約數(shù)C++語言程序設(shè)計(jì)8算法的偽代碼描述:1.inputm,n2.r=m%n;3.while(r!=0)3.1m=n;3.2n=r;3.3r=m%n;4.outputn;算法的偽代碼描述3.2選擇語句if選擇語句C++語言程序設(shè)計(jì)9if(表達(dá)式)
語句1
else
語句23.2選擇語句if選擇語句C++語言程序設(shè)計(jì)101、沒有else分支
2、雙分支3、多分支4、if
語句的嵌套語句是復(fù)合語句時(shí),要加大括號(hào)一個(gè)ifelse語句可看做是一條語句if選擇語句有多種變形:if(表達(dá)式)
語句1
else
語句23.2選擇語句1、沒有else分支C++語言程序設(shè)計(jì)11if(表達(dá)式)
語句1
if(x>y)cout<<x<<endl;比較x和y的大小,如果x大則輸出x的值3.2選擇語句2、雙分支形式C++語言程序設(shè)計(jì)12if(表達(dá)式)
語句1
else
語句2
inta;
cin>>a;if(a%2==0)cout<<"是偶數(shù)"<<endl;elsecout<<"是奇數(shù)"<<endl;判斷一個(gè)整數(shù)是奇數(shù)還是偶數(shù)。3.2選擇語句3、多分支形式C++語言程序設(shè)計(jì)13
if(表達(dá)式1)
語句1elseif(表達(dá)式2)
語句2elseif(表達(dá)式3)
語句3…else
語句n
3.2選擇語句3、多分支形式C++語言程序設(shè)計(jì)14
cin>>grade;
if(grade>=90)
cout<<"成績(jī)?yōu)閮?yōu)";
elseif((grade<90)&&(grade>=80))
cout<<"成績(jī)?yōu)榱?;
elseif((grade<80)&&(grade>=70))
cout<<"成績(jī)?yōu)橹?;
elseif((grade<70)&&(grade>=60))
cout<<"成績(jī)?yōu)榧案?;
else
cout<<"成績(jī)?yōu)椴患案?;
cin>>grade;
if(grade>=90)
cout<<"成績(jī)?yōu)閮?yōu)";
elseif(grade>=80)
cout<<"成績(jī)?yōu)榱?;
elseif(grade>=70)
cout<<"成績(jī)?yōu)橹?;
elseif(grade>=60)
cout<<"成績(jī)?yōu)榧案?;
else
cout<<"成績(jī)?yōu)椴患案?;3.2選擇語句4、If語句的嵌套C++語言程序設(shè)計(jì)15
if(表達(dá)式1)if(表達(dá)式2)
語句1
else
語句2elseif(表達(dá)式3)
語句3
else
語句4
3.2選擇語句4、If語句的嵌套C++語言程序設(shè)計(jì)16
inta,b,c;
cin>>a>>b>>c; if(a>b)
if(a>c)cout<<a<<endl;
elsecout<<c<<endl; else if(b>c)cout<<b<<endl;
elsecout<<c<<endl;cout<<(a>b?(a>c?a:c):(b>c?b:c));3.2選擇語句注意:嵌套時(shí)的二義性intx=-1;if(x>0)if(x<50)cout<<“xis<50”endl;elsecout<<“xis<=0”<<endl;C++語言程序設(shè)計(jì)17if和else的對(duì)應(yīng)關(guān)系,else總是與離它最近的可匹配的if匹配。3.2選擇語句switch選擇語句C++語言程序設(shè)計(jì)18switch(表達(dá)式)
{
case常量表達(dá)式1:語句1break;
case常量表達(dá)式2:語句2break;
case常量表達(dá)式n:語句n
break;
default:
語句n+1;
跳出switch語句3.2選擇語句switch選擇語句C++語言程序設(shè)計(jì)19
3.2選擇語句例子:輸出學(xué)生的成績(jī)C++語言程序設(shè)計(jì)20
intx;cin>>x;switch(x/10){case10:case9:cout<<“優(yōu)秀”<<endl;break;case8:cout<<“良好”<<endl;break;case7:case6:cout<<“合格”<<endl;break;default:cout<<“不及格”<<endl;}3.2選擇語句switch語句注意事項(xiàng)case的常量表達(dá)式可以是字符型、整型或枚舉型,通常,也只是一個(gè)常量。不能放置條件不等式或變量.各個(gè)case的先后順序不影響執(zhí)行結(jié)果,由編程者合理安排。switch語句每當(dāng)找到匹配的常量表達(dá)式,則從此標(biāo)號(hào)開始執(zhí)行下去,不再進(jìn)行判斷,即將此后的其它c(diǎn)ase下的語句也都執(zhí)行。直到碰到break語句或switch語句結(jié)束。一般來說,在每個(gè)case的執(zhí)行語句結(jié)束處,應(yīng)該加上break語句。C++語言程序設(shè)計(jì)21
3.3循環(huán)語句循環(huán)的作用
實(shí)現(xiàn)某些操作(語句)的多次執(zhí)行C++語言程序設(shè)計(jì)22
constdoublePI=3.14159;
cout<<sin(PI/8)<<endl;
cout<<sin(2*PI/8)<<endl;
cout<<sin(3*PI/8)<<endl;
cout<<sin(4*PI/8)<<endl;
cout<<sin(5*PI/8)<<endl;
cout<<sin(6*PI/8)<<endl;
cout<<sin(7*PI/8)<<endl;
cout<<sin(8*PI/8)<<endl;
for(intk=1;k<=8;k++)cout<<sin(k*PI/8)<<endl;
3.3循環(huán)語句三種基本語法 1、while語句 2、do…while語句 3、for語句C++語言程序設(shè)計(jì)23
循環(huán)主要包括3個(gè)部分:1、循環(huán)控制條件:判斷循環(huán)操作是否進(jìn)行的條件;2、循環(huán)體:重復(fù)進(jìn)行的操作;3、循環(huán)控制變量:記錄循環(huán)體執(zhí)行的次數(shù),或控制循環(huán)的結(jié)束條件。3.3循環(huán)語句while語句C++語言程序設(shè)計(jì)24
while(表達(dá)式)
循環(huán)體語句3.3循環(huán)語句例1:編程循環(huán)輸出1-9這9個(gè)數(shù)字?C++語言程序設(shè)計(jì)25
#include<iostream>usingnamespacestd;voidmain(){inti=1;
while(i<10){cout<<i<<endl;i++;}cout<<“循環(huán)結(jié)束”<<endl;}運(yùn)行結(jié)果:123456789循環(huán)結(jié)束 3.3循環(huán)語句例2:編程計(jì)算1+2+3+….+10的值C++語言程序設(shè)計(jì)26
#include<iostream>usingnamespacestd;voidmain(){intsum=0,i=0;while(i<=10){sum+=i;i++;}cout<<sum<<endl;}3.3循環(huán)語句例3-10:編程計(jì)算的值C++語言程序設(shè)計(jì)27
#include<iostream>usingnamespacestd;voidmain(){ intk=1,sum=0,n; cout<<"inputn(n>0):"; cin>>n;
while(k<=n)
{
sum=sum+k*k;
k++; } if(n>0)cout<<sum/n<<endl; else cout<<"n不能<=0"<<endl;}3.3循環(huán)語句使用循環(huán)語句需要注意以下三點(diǎn)。
循環(huán)體如果多于一句,必須采用復(fù)合語句的形式,否則只有循環(huán)體的第一條語句能夠被執(zhí)行,其他循環(huán)體語句不能被重復(fù)執(zhí)行。
一般while語句的循環(huán)控制變量在while語句前被賦值,并在循環(huán)體內(nèi)被修改,使循環(huán)語句能夠正常結(jié)束。循環(huán)結(jié)構(gòu)的循環(huán)體中應(yīng)該有使循環(huán)趨于結(jié)束的語句(修改循環(huán)控制變量的語句)。
如果while語句的條件一開始就不滿足,則其循環(huán)體語句就會(huì)一次也不執(zhí)行。C++語言程序設(shè)計(jì)28
3.3循環(huán)語句do-while循環(huán)語句C++語言程序設(shè)計(jì)29
do{
循環(huán)體語句;}while(表達(dá)式);3.3循環(huán)語句例3-11計(jì)算1~n個(gè)整數(shù)平方和的均值C++語言程序設(shè)計(jì)30
#include<iostream>usingnamespacestd;voidmain(){intk(1),n,sum(0),mean;cout<<"輸入n的值:";cin>>n;do{sum=sum+k*k;k++;}while(k<=n);if(n>0){ mean=sum/n;cout<<"1~"<<n<<"的整數(shù)平方和”;
cout<<“的均值="<<mean<<endl;}elsecout<<"輸入的n值錯(cuò)誤"<<endl;}3.3循環(huán)語句比較C++語言程序設(shè)計(jì)31
do{sum=sum+k*k;k++;}while(k<=n);while(k<=n){
sum=sum+k*k;k++;
}3.3循環(huán)語句for循環(huán)語句C++語言程序設(shè)計(jì)32
for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
循環(huán)體語句for(inti=0;i<10;i++)
cout<<i<<endl;
1、表達(dá)式1循環(huán)變量初始化;
2、表達(dá)式2
循環(huán)控制條件;3、表達(dá)式3循環(huán)變量的變化;3.3循環(huán)語句例3-12:編程計(jì)算的值C++語言程序設(shè)計(jì)33
#include<iostream>usingnamespacestd;voidmain(){intn,sum=0;cout<<"輸入n的值:";cin>>n;for(intk=1;k<=n;k++)sum=sum+k*k;intmean;
if(n>0) //防止被0除{mean=sum/n;cout<<“1~”<<n<<“的整數(shù)平方和的均值”;
cout<<mean<<endl;}elsecout<<"輸入的n值錯(cuò)誤"<<endl;}3.3循環(huán)語句注意事項(xiàng)C++語言程序設(shè)計(jì)34
一般用for語句實(shí)現(xiàn)循環(huán)次數(shù)確定的問題,而用while和do-while語句實(shí)現(xiàn)循環(huán)次數(shù)事先不能確定的問題。for循環(huán)語句使用靈活,可以有多種變化形式:
for語句的3個(gè)表達(dá)式中任何一個(gè)或幾個(gè)可以不寫,但是“;”不能省略。表達(dá)式1和表達(dá)式3都可以是逗號(hào)語句,這種形式在編程時(shí)經(jīng)常會(huì)用到。例如:
for(sum=0,k=1;k<=10;k++)sum=sum+k*k;3.3循環(huán)語句例3-14計(jì)算1~10的階乘。C++語言程序設(shè)計(jì)35
#include<iostream>usingnamespacestd;voidmain(){intn=0; //循環(huán)變量初始化在這里完成unsignedlongfactorial(1);for(;++n<=10;) //表達(dá)式2也完成表達(dá)式3的功能{factorial*=n;cout<<n<<"!="<<factorial<<endl;}}例:判斷程序輸出結(jié)果?C++語言程序設(shè)計(jì)36#include<iostream>usingnamespacestd;voidmain(){for(inti=0,j=10,k=0;i<j;i++,j--) k+=i*j; cout<<k<<endl;}分析:ijk010019928253746467055 跳出3.4break語句和continue語句break和continue語句都是流程控制語句,實(shí)現(xiàn)一定條件下程序流程的改變。break語句只用于循環(huán)結(jié)構(gòu)的循環(huán)體或switch語句結(jié)構(gòu)的各個(gè)分支中。用于循環(huán)結(jié)構(gòu),能使流程從循環(huán)體跳出,去執(zhí)行循環(huán)結(jié)構(gòu)后面的語句;用于switch語句,使每個(gè)分支語句執(zhí)行之后,流程能正確結(jié)束switch語句的執(zhí)行,轉(zhuǎn)到switch語句結(jié)構(gòu)的后面語句。C++語言程序設(shè)計(jì)37
3.4break語句和continue語句例3-14讀程序,給出程序的輸出結(jié)果C++語言程序設(shè)計(jì)38
#include<iostream>usingnamespacestd;voidmain(){
inti,sum=0;;
for(i=1;i<=100;i++)
{
if(i%3==0)break;sum=sum+i;
}
cout<<sum<<endl;}3.4break語句和continue語句continue語句多用于循環(huán)結(jié)構(gòu)的循環(huán)體中常常與if-else語句配合使用實(shí)現(xiàn)滿足一定條件時(shí),提前結(jié)束本次循環(huán),即跳過該語句之后的循環(huán)體的其他語句。C++語言程序設(shè)計(jì)39
#include<iostream>usingnamespacestd;voidmain(){
inti,sum=0;;
for(i=1;i<=100;i++)
{
if(i%3==0)continue;sum=sum+i;
}
cout<<sum<<endl;}C++語言程序設(shè)計(jì)編程技能b40(一)隨機(jī)數(shù)C++語言程序設(shè)計(jì)41隨機(jī)數(shù)產(chǎn)生函數(shù)rand()可以用來產(chǎn)生一個(gè)0-RAND_MAX之間的隨機(jī)數(shù),但它并不是真正的隨機(jī)數(shù)生成器,常被稱為偽隨機(jī)數(shù)。for(inti=0;i<10;i++) cout<<rand()<<endl;在使用rand()之前,一般要先使用srand()函數(shù)為隨機(jī)數(shù)序列設(shè)置種子。
srand((unsigned)time(NULL));for(inti=0;i<10;i++) cout<<rand()<<endl;(二)
結(jié)構(gòu)嵌套C++語言程序設(shè)計(jì)42常見的架構(gòu)嵌套:選擇結(jié)構(gòu)嵌套循環(huán)結(jié)構(gòu)嵌套循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)的相互嵌套。(二)
結(jié)構(gòu)嵌套C++語言程序設(shè)計(jì)43注意if-else嵌套時(shí)匹配問題if和else的對(duì)應(yīng)關(guān)系,else總是與離它最近的可匹配的if匹配。(二)
結(jié)構(gòu)嵌套C++語言程序設(shè)計(jì)44#include<iostream>usingnamespacestd;intmain(){
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇護(hù)理職業(yè)學(xué)院《數(shù)據(jù)庫(kù)系統(tǒng)原理(雙語)》2023-2024學(xué)年第一學(xué)期期末試卷
- 黃山職業(yè)技術(shù)學(xué)院《藥事管理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南勞動(dòng)人事職業(yè)學(xué)院《建筑構(gòu)造Ⅰ》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北生物科技職業(yè)學(xué)院《金屬熔煉與鑄造》2023-2024學(xué)年第一學(xué)期期末試卷
- 【物理】《大氣壓強(qiáng)》(教學(xué)設(shè)計(jì))-2024-2025學(xué)年人教版(2024)初中物理八年級(jí)下冊(cè)
- 高考物理模擬測(cè)試題(附帶答案)
- 重慶師范大學(xué)《軟件測(cè)試課設(shè)》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶電信職業(yè)學(xué)院《擴(kuò)聲技術(shù)1》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江中醫(yī)藥大學(xué)《嵌入式系統(tǒng)開發(fā)及應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江機(jī)電職業(yè)技術(shù)學(xué)院《空間信息系統(tǒng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2023年貴州黔東南州州直機(jī)關(guān)遴選公務(wù)員筆試真題
- 心腦血管疾病預(yù)防課件
- 中藥飲片驗(yàn)收培訓(xùn)
- DB35T 1036-2023 10kV及以下電力用戶業(yè)擴(kuò)工程技術(shù)規(guī)范
- 中國(guó)移動(dòng)自智網(wǎng)絡(luò)白皮書(2024) 強(qiáng)化自智網(wǎng)絡(luò)價(jià)值引領(lǐng)加速邁進(jìn)L4級(jí)新階段
- 亞馬遜合伙運(yùn)營(yíng)協(xié)議書模板
- 2024年6月青少年機(jī)器人技術(shù)等級(jí)考試?yán)碚摼C合-三級(jí)試題(真題及答案)
- 《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)(2022年版)》測(cè)試題+答案
- Unit 4 同步練習(xí)人教版2024七年級(jí)英語上冊(cè)
- 人教版數(shù)學(xué)三年級(jí)下冊(cè)《簡(jiǎn)單的小數(shù)加、減法》說課稿(附反思、板書)課件
- 廣東省深圳市2023年中考英語試題(含答案與解析)
評(píng)論
0/150
提交評(píng)論