




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C++語言程序設(shè)計第十一組C++語言程序設(shè)計第三章
控制語句C++語言程序設(shè)計1目錄C++語言程序設(shè)計2“算法的基本控制結(jié)構(gòu)選擇語句循環(huán)語句break語句和continue語句基本知識隨機數(shù)結(jié)構(gòu)嵌套編程技能跟蹤程序的執(zhí)行刨根問底C++語言程序設(shè)計3基本知識a3.1算法的基本控制結(jié)構(gòu)程序的三種基本控制結(jié)構(gòu)(1)順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)(3)循環(huán)結(jié)構(gòu)C++語言程序設(shè)計43.1算法的基本控制結(jié)構(gòu)算法(Algorithm)是解決特定問題的方法和具體步驟算法的描述方法偽代碼:采用類似計算機語言的分句格式,以自然語言描述算法。C++語言程序設(shè)計5“順序結(jié)構(gòu)”舉例:輸入圓的半徑;計算圓的面積;輸出圓的面積;“選擇結(jié)構(gòu)”舉例:if輸入的圓半徑大于0
計算圓的面積
顯示面積;else
顯示“輸入數(shù)據(jù)錯誤”;“循環(huán)結(jié)構(gòu)”舉例:
i=1;
while(i小于等于30)do
{累加一個學(xué)生的成績;
i等于i+1;
}3.1算法的基本控制結(jié)構(gòu)算法的描述方法流程圖開始/結(jié)束
執(zhí)行判斷聯(lián)系C++語言程序設(shè)計63.1算法的基本控制結(jié)構(gòu)算法的描述方法——流程圖C++語言程序設(shè)計73.1算法的基本控制結(jié)構(gòu)例3-1用輾轉(zhuǎn)相除法求兩個自然數(shù)m和n的最大公約數(shù)C++語言程序設(shè)計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è)計9if(表達式)
語句1
else
語句23.2選擇語句if選擇語句C++語言程序設(shè)計101、沒有else分支
2、雙分支3、多分支4、if
語句的嵌套語句是復(fù)合語句時,要加大括號一個ifelse語句可看做是一條語句if選擇語句有多種變形:if(表達式)
語句1
else
語句23.2選擇語句1、沒有else分支C++語言程序設(shè)計11if(表達式)
語句1
if(x>y)cout<<x<<endl;比較x和y的大小,如果x大則輸出x的值3.2選擇語句2、雙分支形式C++語言程序設(shè)計12if(表達式)
語句1
else
語句2
inta;
cin>>a;if(a%2==0)cout<<"是偶數(shù)"<<endl;elsecout<<"是奇數(shù)"<<endl;判斷一個整數(shù)是奇數(shù)還是偶數(shù)。3.2選擇語句3、多分支形式C++語言程序設(shè)計13
if(表達式1)
語句1elseif(表達式2)
語句2elseif(表達式3)
語句3…else
語句n
3.2選擇語句3、多分支形式C++語言程序設(shè)計14
cin>>grade;
if(grade>=90)
cout<<"成績?yōu)閮?yōu)";
elseif((grade<90)&&(grade>=80))
cout<<"成績?yōu)榱?;
elseif((grade<80)&&(grade>=70))
cout<<"成績?yōu)橹?;
elseif((grade<70)&&(grade>=60))
cout<<"成績?yōu)榧案?;
else
cout<<"成績?yōu)椴患案?;
cin>>grade;
if(grade>=90)
cout<<"成績?yōu)閮?yōu)";
elseif(grade>=80)
cout<<"成績?yōu)榱?;
elseif(grade>=70)
cout<<"成績?yōu)橹?;
elseif(grade>=60)
cout<<"成績?yōu)榧案?;
else
cout<<"成績?yōu)椴患案?;3.2選擇語句4、If語句的嵌套C++語言程序設(shè)計15
if(表達式1)if(表達式2)
語句1
else
語句2elseif(表達式3)
語句3
else
語句4
3.2選擇語句4、If語句的嵌套C++語言程序設(shè)計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選擇語句注意:嵌套時的二義性intx=-1;if(x>0)if(x<50)cout<<“xis<50”endl;elsecout<<“xis<=0”<<endl;C++語言程序設(shè)計17if和else的對應(yīng)關(guān)系,else總是與離它最近的可匹配的if匹配。3.2選擇語句switch選擇語句C++語言程序設(shè)計18switch(表達式)
{
case常量表達式1:語句1break;
case常量表達式2:語句2break;
case常量表達式n:語句n
break;
default:
語句n+1;
跳出switch語句3.2選擇語句switch選擇語句C++語言程序設(shè)計19
3.2選擇語句例子:輸出學(xué)生的成績C++語言程序設(shè)計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語句注意事項case的常量表達式可以是字符型、整型或枚舉型,通常,也只是一個常量。不能放置條件不等式或變量.各個case的先后順序不影響執(zhí)行結(jié)果,由編程者合理安排。switch語句每當找到匹配的常量表達式,則從此標號開始執(zhí)行下去,不再進行判斷,即將此后的其它case下的語句也都執(zhí)行。直到碰到break語句或switch語句結(jié)束。一般來說,在每個case的執(zhí)行語句結(jié)束處,應(yīng)該加上break語句。C++語言程序設(shè)計21
3.3循環(huán)語句循環(huán)的作用
實現(xiàn)某些操作(語句)的多次執(zhí)行C++語言程序設(shè)計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è)計23
循環(huán)主要包括3個部分:1、循環(huán)控制條件:判斷循環(huán)操作是否進行的條件;2、循環(huán)體:重復(fù)進行的操作;3、循環(huán)控制變量:記錄循環(huán)體執(zhí)行的次數(shù),或控制循環(huán)的結(jié)束條件。3.3循環(huán)語句while語句C++語言程序設(shè)計24
while(表達式)
循環(huán)體語句3.3循環(huán)語句例1:編程循環(huán)輸出1-9這9個數(shù)字?C++語言程序設(shè)計25
#include<iostream>usingnamespacestd;voidmain(){inti=1;
while(i<10){cout<<i<<endl;i++;}cout<<“循環(huán)結(jié)束”<<endl;}運行結(jié)果:123456789循環(huán)結(jié)束 3.3循環(huán)語句例2:編程計算1+2+3+….+10的值C++語言程序設(shè)計26
#include<iostream>usingnamespacestd;voidmain(){intsum=0,i=0;while(i<=10){sum+=i;i++;}cout<<sum<<endl;}3.3循環(huán)語句例3-10:編程計算的值C++語言程序設(shè)計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)語句需要注意以下三點。
循環(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)體語句就會一次也不執(zhí)行。C++語言程序設(shè)計28
3.3循環(huán)語句do-while循環(huán)語句C++語言程序設(shè)計29
do{
循環(huán)體語句;}while(表達式);3.3循環(huán)語句例3-11計算1~n個整數(shù)平方和的均值C++語言程序設(shè)計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值錯誤"<<endl;}3.3循環(huán)語句比較C++語言程序設(shè)計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è)計32
for(表達式1;表達式2;表達式3)
循環(huán)體語句for(inti=0;i<10;i++)
cout<<i<<endl;
1、表達式1循環(huán)變量初始化;
2、表達式2
循環(huán)控制條件;3、表達式3循環(huán)變量的變化;3.3循環(huán)語句例3-12:編程計算的值C++語言程序設(shè)計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值錯誤"<<endl;}3.3循環(huán)語句注意事項C++語言程序設(shè)計34
一般用for語句實現(xiàn)循環(huán)次數(shù)確定的問題,而用while和do-while語句實現(xiàn)循環(huán)次數(shù)事先不能確定的問題。for循環(huán)語句使用靈活,可以有多種變化形式:
for語句的3個表達式中任何一個或幾個可以不寫,但是“;”不能省略。表達式1和表達式3都可以是逗號語句,這種形式在編程時經(jīng)常會用到。例如:
for(sum=0,k=1;k<=10;k++)sum=sum+k*k;3.3循環(huán)語句例3-14計算1~10的階乘。C++語言程序設(shè)計35
#include<iostream>usingnamespacestd;voidmain(){intn=0; //循環(huán)變量初始化在這里完成unsignedlongfactorial(1);for(;++n<=10;) //表達式2也完成表達式3的功能{factorial*=n;cout<<n<<"!="<<factorial<<endl;}}例:判斷程序輸出結(jié)果?C++語言程序設(shè)計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語句都是流程控制語句,實現(xiàn)一定條件下程序流程的改變。break語句只用于循環(huán)結(jié)構(gòu)的循環(huán)體或switch語句結(jié)構(gòu)的各個分支中。用于循環(huán)結(jié)構(gòu),能使流程從循環(huán)體跳出,去執(zhí)行循環(huán)結(jié)構(gòu)后面的語句;用于switch語句,使每個分支語句執(zhí)行之后,流程能正確結(jié)束switch語句的執(zhí)行,轉(zhuǎn)到switch語句結(jié)構(gòu)的后面語句。C++語言程序設(shè)計37
3.4break語句和continue語句例3-14讀程序,給出程序的輸出結(jié)果C++語言程序設(shè)計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語句配合使用實現(xiàn)滿足一定條件時,提前結(jié)束本次循環(huán),即跳過該語句之后的循環(huán)體的其他語句。C++語言程序設(shè)計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è)計編程技能b40(一)隨機數(shù)C++語言程序設(shè)計41隨機數(shù)產(chǎn)生函數(shù)rand()可以用來產(chǎn)生一個0-RAND_MAX之間的隨機數(shù),但它并不是真正的隨機數(shù)生成器,常被稱為偽隨機數(shù)。for(inti=0;i<10;i++) cout<<rand()<<endl;在使用rand()之前,一般要先使用srand()函數(shù)為隨機數(shù)序列設(shè)置種子。
srand((unsigned)time(NULL));for(inti=0;i<10;i++) cout<<rand()<<endl;(二)
結(jié)構(gòu)嵌套C++語言程序設(shè)計42常見的架構(gòu)嵌套:選擇結(jié)構(gòu)嵌套循環(huán)結(jié)構(gòu)嵌套循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)的相互嵌套。(二)
結(jié)構(gòu)嵌套C++語言程序設(shè)計43注意if-else嵌套時匹配問題if和else的對應(yīng)關(guān)系,else總是與離它最近的可匹配的if匹配。(二)
結(jié)構(gòu)嵌套C++語言程序設(shè)計44#include<iostream>usingnamespacestd;intmain(){
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個體工商戶向個人借款合同
- 爭議解決協(xié)議書
- 電商網(wǎng)絡(luò)直播的銷售技巧及策略
- 個人聯(lián)營合同范本
- 廠房小院出售合同范本
- 合同范本 風險應(yīng)對
- 合伙酒店分割合同范本
- 科技商業(yè)融合下的現(xiàn)代物流變革
- 卡套行業(yè)分析研究報告
- 加盟合作銷售合同范本
- 二級精神病醫(yī)院評審標準實施細則
- 全套ISO45001職業(yè)健康安全管理體系文件(手冊及程序文件)
- tdp燙傷處理應(yīng)急預(yù)案
- MQL4命令中文詳解手冊
- 水利工程危險源辨識清單全
- ISO20000:2018版標準培訓(xùn)教材
- 創(chuàng)新中學(xué)化學(xué)教學(xué)中的實驗設(shè)計
- 四川峨勝水泥集團股份有限公司環(huán)保搬遷3000td熟料新型干法大壩水泥生產(chǎn)線環(huán)境影響評價報告書
- 《公路工程計量與計價》說課草稿
- Barrett食管醫(yī)學(xué)知識講解
- 數(shù)獨課件完整版
評論
0/150
提交評論