ch4函數(shù)表達(dá)-C++課件_第1頁
ch4函數(shù)表達(dá)-C++課件_第2頁
ch4函數(shù)表達(dá)-C++課件_第3頁
ch4函數(shù)表達(dá)-C++課件_第4頁
ch4函數(shù)表達(dá)-C++課件_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第四章計(jì)算表達(dá)本章內(nèi)容掌握操作符的功能和相互關(guān)系,了解操作符的優(yōu)先級和結(jié)合性掌握常用的表達(dá)式〔賦值、條件、逗號〕掌握關(guān)系和邏輯操作針對內(nèi)部數(shù)據(jù)類型,對一些典型的操作中的典型問題留下深刻印象(自學(xué))1.操作符(運(yùn)算符)單目操作符:在一個(gè)操作數(shù)上施加的操作 如:-3雙目操作符:在二個(gè)操作數(shù)上施加的操作 如:5-3

故有些操作符既是單目操作符,又是雙目操作符三目操作符?:操作符匯總P105,表4-1優(yōu)先級:表達(dá)式中多個(gè)操作符的執(zhí)行順序的規(guī)定性,如:

a=b+6;//先+后=,優(yōu)先級不同

結(jié)合性:同級操作符的執(zhí)行順序的規(guī)定性,如:

a=b=6;//先做b=6

*x++;//先做x++再做*操作可用〔〕改變優(yōu)先級操作符-加減乘除加、減、乘的操作和生活中的相關(guān)運(yùn)算完全一樣,注意2*i不能寫成2i除運(yùn)算使用反余杠‘/’,注意:對于整數(shù)類型,或字符類型的數(shù)據(jù)進(jìn)行除運(yùn)算時(shí),小數(shù)局部將被截掉體會下面兩者的差異:floata=5/2;//結(jié)果a=2;floata=5.0/2;//結(jié)果a=2.5;習(xí)題1假設(shè)有以下程序段,intc1=3,c2=2,c3;c3=1.0/c2*c1;那么執(zhí)行后,c3中的值是。A〕0B〕1C〕1.5D〕2答案:B在數(shù)學(xué)式中,變量x和y的取值為整數(shù),而變量a和b的取值為實(shí)數(shù),在C++程序中對應(yīng)的正確表達(dá)式是:()3/5*x*y/a/b3*x*y/5/a/b3*x*y/5*a*b3/a/b/5*x*y習(xí)題2答案:D操作符-求模運(yùn)算%操作也是C++常用的操作符。%并不是進(jìn)行“百分比”的運(yùn)算。在C和C++里,%進(jìn)行求余數(shù)運(yùn)算,求余數(shù)也稱“求?!保韵率乔笥嗖僮鞯睦樱篿nta=5%2;//結(jié)果a=1操作符-自運(yùn)算+=、-=、*=、/=、%=等,它實(shí)現(xiàn)的操作就是將其左邊的量在自身的根底上加〔或減去、乘以等〕上右邊表達(dá)式的值。一種優(yōu)化,可減少匯編代碼,計(jì)算機(jī)的運(yùn)算速度比較快操作符-關(guān)系操作所謂的關(guān)系運(yùn)算,在C,C++語言里,就是比較運(yùn)算。關(guān)系操作符 ==〔相等比較〕、!=〔不等比較〕 >〔大于比較〕、<〔小于比較〕 >=〔大于等于比較〕、<=〔小于等于比較〕算術(shù)運(yùn)算所得的結(jié)果是數(shù)值,而關(guān)系運(yùn)算所得的結(jié)果為邏輯值,也稱布爾值。即我們以前所學(xué)的bool類型允許的值:真或假。真用true或1表示,假用false或0表示。inta=10;intb=9;那么:a==b+1 運(yùn)算結(jié)果:truea==b

運(yùn)算結(jié)果:falsea>b

運(yùn)算結(jié)果:truea>=b

運(yùn)算結(jié)果:trueb>a

運(yùn)算結(jié)果:falsea>=b+1 運(yùn)算結(jié)果:truea<=b+1 運(yùn)算結(jié)果:truea!=b

運(yùn)算結(jié)果:truea=b 運(yùn)算結(jié)果:true注意:=與==的區(qū)別intx=9;if(x==0)cout<<“test1ok\n”;if(x=5)cout<<“test2ok\n”;if(x=0)cout<<“test3ok\n”;結(jié)果為: test2ok注意:不等式連寫的錯(cuò)誤intx=-3;

if(-5<x<0) cout<<“ok”<<endl;else

cout<<“Notok”<<endl;結(jié)果為: Notok正確的寫法:(-5<x)&&(x<0)操作符-邏輯操作關(guān)系操作的結(jié)果就是是(true)、否(false)兩個(gè)邏輯值之一。邏輯值可以進(jìn)行邏輯運(yùn)算,邏輯運(yùn)算符有:

!邏輯非,&&邏輯與,||邏輯或操作符意義參考P117表4-2短路求值的妙用

防止不必要的求值inta=0; if(a==0||b=func())cout<<”useless\n”;防止除0的惡果intb=0; if(b&&a/b>2) cout<<“ok\n”;||:有一個(gè)為1,值為為1&&:有一個(gè)為0,值就為0操作符-++和--運(yùn)算〔更為優(yōu)化的自增自減運(yùn)算符〕++a和--a稱為前置運(yùn)算(prefix),而a++和a--稱為后置運(yùn)算(postfix)。如果僅僅是進(jìn)行前置工或后置運(yùn)算,那么結(jié)果是相同的;但在有其它運(yùn)算的復(fù)雜表達(dá)式中,前置++運(yùn)算過程是:先加1,然后將已加1的變量參以其它運(yùn)算。后置++的運(yùn)算過程是:先用未加1的變量參以其它運(yùn)算,然后再將該變量加1。inta=10;intb=++a;//前置++cout<<a<<“,“<<b<<endl;結(jié)果:11,11解析:先計(jì)算++a,結(jié)果a值為11;然后再計(jì)算b=a;結(jié)果b值也為11。inta=10;intb=a++;//后置++cout<<a<<““<<b<<endl;結(jié)果:11,10解析:先計(jì)算b=a;因此,b的值是未加1之前的a,所以為10;然后再計(jì)算a++,a的值為11。習(xí)題1試驗(yàn):inta=4,b=6,c=5;

cout<<(b>a++&&c>a);

inta=4,b=5;

cout<<((a++,b>a++)?1:0);00P123:前增量與后增量操作的意義前增量操作的意義為:先將變量增1,使其實(shí)體發(fā)生變化,然后將變量對應(yīng)的實(shí)體作為表達(dá)式結(jié)果。后增量操作的意義為:先將變量的值〔僅僅是值,不是實(shí)體〕作為表達(dá)式的值確定下來,再將變量增1,實(shí)體值發(fā)生變化。P123:操作符識別++與--書寫時(shí)的兩種情況:連寫:貪吃法那么分開寫2.表達(dá)式表達(dá)式:變量、常量、各種運(yùn)算符等組成表達(dá)式,用于表達(dá)一個(gè)計(jì)算過程。例1:a=-3-5+6*7/(-8)例2:寫一個(gè)計(jì)算圓面積,可以如下表達(dá): area=Pi*R*R例3:a=3,b=4,c=0表達(dá)式是操作符、操作數(shù)和標(biāo)點(diǎn)符號組成的序列,用于表達(dá)一個(gè)計(jì)算過程。表達(dá)式都是有值的。。。。。可以用如下形式觀察表達(dá)式的值:

cout<<(表達(dá)式)幾種表達(dá)式及其值1.賦值表達(dá)式:用=實(shí)現(xiàn)注意連等的情況試驗(yàn)如下代碼:inta=4,b=5,c=8,d=9;cout<<(a=b=c=d)<<endl;cout<<a<<endl;cout<<b<<endl;cout<<c<<endl;cout<<d<<endl;999992.條件表達(dá)式:用在if、for、while、?:后面描述條件的局部,其結(jié)果只有0和1〔把非0值映射為true,0值映射為false〕3.逗號表達(dá)式:假設(shè)干表達(dá)式之間以逗號隔開;其值為最后一個(gè)子表達(dá)式的值,但其求值過程是從左邊第一項(xiàng)開始的。 試驗(yàn):inta=4,b=6,c=8;cout<<(a=3,b=4,c=a-b);語句C++語句和表達(dá)式并沒有嚴(yán)格的區(qū)分。一個(gè)表達(dá)式,加上一個(gè)分號后,可以直接形成語句,如:3+2;inta,b,c;//變量定義語句a=b=c=10;//賦值語句可以連等a=b*5+c;//賦值語句語句也可以直接是一個(gè)分號,稱為空語句有時(shí)候,連續(xù)的多句語句屬于同一控制范圍,這時(shí),我們用一對花括號將這些語句括起,花括號內(nèi)的內(nèi)容,稱為復(fù)合語句:{

inta=100;

intb=a*20;}

3.算術(shù)類型轉(zhuǎn)換floata=5/2;//精度〔小數(shù)點(diǎn)位〕喪失三種可以解決小數(shù)位喪失的方法:方法1:floata=5.0/2;方法2:floata=5/2.0;方法3:

floata=5.0/2.0;知識回憶隱式類型轉(zhuǎn)換C++遇到兩種不同數(shù)據(jù)類型的數(shù)值進(jìn)行運(yùn)算時(shí),會將某個(gè)數(shù)做適當(dāng)?shù)念愋娃D(zhuǎn)換,然后再進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換總是朝表達(dá)能力強(qiáng)的方向進(jìn)行,并且轉(zhuǎn)換總是逐個(gè)運(yùn)算符進(jìn)行的。這個(gè)轉(zhuǎn)換過程,在程序運(yùn)行時(shí)自動進(jìn)行,稱為隱式轉(zhuǎn)換。從表達(dá)能力弱的類型到強(qiáng)的類型的轉(zhuǎn)換是平安的,反之,會引起精度喪失. floatf=7.0/3;//doublefloat inta=7.0/3;//doubleint cout.precision(9); cout<<fixed<<7.0/3<<“\n”; cout<<f<<

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論