版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
關(guān)于關(guān)系表達(dá)式和邏輯表達(dá)式第1頁,講稿共18頁,2023年5月2日,星期三術(shù)語“控制流”(FlowOfControl)是指程序語句執(zhí)行的順序。除非特別指定,否則所有程序的正常控制流都是順序的(這意味著每個語句都是順序執(zhí)行的,一個接一個地按照它們在程序中的順序執(zhí)行)。
選擇語句和重復(fù)(循環(huán))語句都允許程序員改變控制流的正常順序,正如它們的名稱所暗示的,選擇語句提供了從一組設(shè)計良好的語句組中選擇接下來將要執(zhí)行的語句的能力;而重復(fù)語句提供了轉(zhuǎn)回來重復(fù)執(zhí)行一組語句的能力。
所有的程序都由這這三種(順序、選擇、循環(huán))控制結(jié)構(gòu)構(gòu)成,這就是結(jié)構(gòu)化程序設(shè)計中的一個重要原則?!炜刂屏鳎ǔ绦蛄鳎┑?頁,講稿共18頁,2023年5月2日,星期三§順序結(jié)構(gòu)順序流程意味著每個語句都是順序執(zhí)行的,一個接一個地按照它們在程序中的順序執(zhí)行,且只執(zhí)行一次。第3頁,講稿共18頁,2023年5月2日,星期三§選擇(分支)結(jié)構(gòu)選擇(分支)結(jié)構(gòu)提供了從一組設(shè)計良好的語句組中選擇接下來將要執(zhí)行的語句的能力第4頁,講稿共18頁,2023年5月2日,星期三§循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)提供了轉(zhuǎn)回來重復(fù)執(zhí)行一組語句的能力。第5頁,講稿共18頁,2023年5月2日,星期三在我們編寫程序的時候,需要控制程序根據(jù)條件來選擇執(zhí)行相關(guān)的操作。很多時候,需要判斷的條件往往不止一個,比如從鍵盤輸入一個數(shù),我們要判斷它是否大于0,并且小于10,這里的“大于”,“小于”就是關(guān)系運算,“并且”就是邏輯運算。
C語言為我們提供了邏輯運算和關(guān)系運算,用它們構(gòu)成復(fù)雜的控制條件,來實現(xiàn)程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)?!?/p>
程序設(shè)計條件的表示第6頁,講稿共18頁,2023年5月2日,星期三關(guān)系運算和我們數(shù)學(xué)中的比較運算基本一致,它們用于兩個操作數(shù)(整數(shù)、浮點數(shù)、字符數(shù)據(jù))的比較。
C語言為我們提供了6種關(guān)系運算符:§關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算符意義示例
<小于age<30
>大于height>5.2
>=大于等于taxable<=20000
<=小于等于temp>=98.6
==等于class==‘b’
!=不等于number!=250第7頁,講稿共18頁,2023年5月2日,星期三關(guān)系運算符都雙目運算符,滿足從左到右的結(jié)合律。它們的優(yōu)先關(guān)系如下:
1、關(guān)系運算符的優(yōu)先級要低于算術(shù)運算符。比如語句:c>=b+2;則先計算b+2的值,再和c比較。
2、關(guān)系運算符的優(yōu)先級高于賦值運算符。比如語句“a=b>c;”,先進(jìn)行關(guān)系運算“b>c”,成立(真),則b>c值為1,不成立(假),則b>c值為0;然后再做賦值運算,把1或0賦值給a。
3、關(guān)系運算符>、>=、<、<=的優(yōu)先級要高于==、!=的優(yōu)先級,同級之間優(yōu)先級相同。比如語句“c<a!=b;”,先計算“c<a”,再算“!=”的值,等價于“(c<a)!=b”。
4、除了數(shù)學(xué)運算對象之外,還可以使用關(guān)系運算符來比較字符數(shù)據(jù),char值將被強(qiáng)制轉(zhuǎn)換成int值以進(jìn)行比較。
5、不能直接使用關(guān)系運算符比較字符串?!?/p>
關(guān)系運算符的運算第8頁,講稿共18頁,2023年5月2日,星期三關(guān)系表達(dá)式就是用關(guān)系運算符把兩個表達(dá)式連接起來的式子,它的一般形式是:
表達(dá)式1關(guān)系運算符表達(dá)式2
例如,判斷一個學(xué)生成績是否及格。定義變量:score表示學(xué)生成績,判斷“score>=60”表達(dá)式是否為真,為真其就是1,為假就是0。當(dāng)score=86,“score>=60”為“真”,表達(dá)式的值為1;當(dāng)score=54,“score>=60”為“假”,表達(dá)式的值為0;
總結(jié)來講,關(guān)系表達(dá)式的值只有兩種可能:關(guān)系成立,則關(guān)系表達(dá)的值為“真”(值為1);關(guān)系不成立,則關(guān)系表達(dá)式的值為“假”(值為0)。在C語言中用非0值表達(dá)“真”,用0表達(dá)“假”?!?/p>
關(guān)系表達(dá)式第9頁,講稿共18頁,2023年5月2日,星期三想要判斷整數(shù)sum的取值是否滿足:0≤sum≤100;千萬不能寫成“0<=sum<=100,而需要按這樣的句式:sum>=0并且sum<=100來表達(dá)。也就是說,除了使用關(guān)系表達(dá)式表示簡單的條件以外,還可以使用邏輯運算與、或、非來創(chuàng)建更為復(fù)雜的條件?!爝壿嬤\算符和邏輯表達(dá)式第10頁,講稿共18頁,2023年5月2日,星期三
C語言的邏輯運算符有3種:§邏輯運算符邏輯運算符意義示例&&邏輯與(當(dāng)且僅當(dāng)、并且)a>13&&d>20||邏輯或(或者,二者只要具備其一)a>13||b>20
!邏輯非(條件不成立,取反)!a
邏輯與運算符&&是用于兩個關(guān)系表達(dá)式時,只有當(dāng)每個表達(dá)式都為“真”時該條件才為“真”。
邏輯或運算符||也是用于兩個表達(dá)式的,只要兩個表達(dá)式至少有一個是“真”,該條件就為“真”。
非運算符!將把表達(dá)式更改為它的相反狀態(tài),也就是就,如果表達(dá)式為“真”,那么它的非運算的值就為“假”;如果表達(dá)式開始為“假”,那么它的非運算的值就為“假”。第11頁,講稿共18頁,2023年5月2日,星期三前面表格中的“a>13&&d>20”就是邏輯表達(dá)式,邏輯表達(dá)式的值取1(真),或者0(假)。
一個邏輯表達(dá)式可以包含多個邏輯運算符,它們的優(yōu)先級順序是:“!”的優(yōu)先級最高,“&&”次之,“||”的優(yōu)先級最低。邏輯運算符“&&”、“||”的優(yōu)先級低于所有關(guān)系運算符,而“!”的優(yōu)先級高于所有算術(shù)運算符?!爝壿嫳磉_(dá)式第12頁,講稿共18頁,2023年5月2日,星期三使用C的關(guān)系運算表達(dá)式可能會遇到與浮點數(shù)(單精度或雙精度)相關(guān)的微妙的數(shù)學(xué)精度問題。因為計算機(jī)存儲這些數(shù)據(jù)的方式不同,所以應(yīng)該避免使用關(guān)系運算符“==”來衡量浮點數(shù)的等同關(guān)系,原因是,很多十進(jìn)制小數(shù)(例如:0.1)不能使用有限的位數(shù)精確地以二進(jìn)制表示,因此,要測試這些數(shù)字的完全等同關(guān)系將會失敗。當(dāng)需要測試非整數(shù)值的等同關(guān)系時,最好要求運算對象之差的絕對值小于一個非常小的值,因此,對于實際的運算對象,常規(guī)表達(dá)式
operandOne==operandTwo應(yīng)該被下面的條件所取代
fabs(operandOne-operandTwo)<EPSILON其中EPSILON是一個被設(shè)置為任意可接受的足夠小的值(如0.0000001或其他用戶選定的值)的命名常量。因此,如果兩個運算對象之差小于EPSILON的值,那么這兩個運算對象被認(rèn)為是最基本相等?!?/p>
數(shù)學(xué)的精度問題第13頁,講稿共18頁,2023年5月2日,星期三例:如果x和y是浮點變量,那么條件
x/y==0.35應(yīng)該以下面的方式來編程:
abs(x/y-0.35)<0.0000001其后面的條件可以確保以二進(jìn)制非整數(shù)數(shù)字所帶來的少量誤差不會影響到測試條件的賦值結(jié)果。§
數(shù)學(xué)的精度問題舉例第14頁,講稿共18頁,2023年5月2日,星期三編寫用來表示下列條件的關(guān)系表達(dá)式或邏輯表達(dá)式(使用你自己選擇的變量名):
⑴一個人的年齡為30歲
age==30⑵一個人的體溫大于98.6華氏度
heat>98.6⑶一個人的身高小于6英尺
height<6.0⑷目前為12月
month==12⑸輸入的字母為m
key=='m'§編寫條件的練習(xí)(一)第15頁,講稿共18頁,2023年5月2日,星期三⑹一個人的年齡為30歲且身高大于6尺
age==30&&height>6⑺語文成績80分以上或且數(shù)學(xué)成績80分以上(含80分)
chinese>=80||math>=80⑻目前為1月15日
month==1&&day==15⑼0≤x≤100
x>=0&&x<=100⑽x是偶數(shù)
x%2==0⑾x的絕對值大于5
x>5||x<-5或者x*x>25⑿年份為閏年
(year%4==0&&year%100!=0)||year%400==0§編寫條件的練習(xí)(二)第16頁,講稿共18頁,2023年5
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息技術(shù)教師勞動合同范本
- 房地產(chǎn)開發(fā)商合同 示范文本
- 室內(nèi)設(shè)計裝修協(xié)議格式
- 個人商業(yè)店面出租合同協(xié)議
- 2024年化糞池清掏服務(wù)合同書
- 標(biāo)準(zhǔn)拆遷安置房買賣合同
- 公司借款合同的編寫要點與示范
- 旅游項目投資合作協(xié)議模板
- 個人車輛租賃合同
- 上海市液化氣購銷合同
- 鐵路英語 課件 Unit-3 Railway Maintenance
- 拖拉機(jī)底盤優(yōu)化設(shè)計方案
- 高職《旅游管理》專業(yè)教學(xué)計劃
- 屋面工程技術(shù)規(guī)范G50345-2012
- 2023年工會財務(wù)管理制度范本
- 足球比賽記錄表格
- 營養(yǎng)科工作制度與職責(zé)
- 《統(tǒng)計學(xué)-基于Excel》(第3版)課后參考答案 賈俊平
- 杭州郭莊調(diào)研
- 短歌行教學(xué)講解課件
- 機(jī)械設(shè)計圖紙標(biāo)準(zhǔn)化
評論
0/150
提交評論