《C++語言程序設(shè)計(jì)》課件第3章_第1頁(yè)
《C++語言程序設(shè)計(jì)》課件第3章_第2頁(yè)
《C++語言程序設(shè)計(jì)》課件第3章_第3頁(yè)
《C++語言程序設(shè)計(jì)》課件第3章_第4頁(yè)
《C++語言程序設(shè)計(jì)》課件第3章_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論