版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
關(guān)于關(guān)系表達(dá)式和邏輯表達(dá)式第一頁,共十八頁,2022年,8月28日術(shù)語“控制流”(FlowOfControl)是指程序語句執(zhí)行的順序。除非特別指定,否則所有程序的正常控制流都是順序的(這意味著每個(gè)語句都是順序執(zhí)行的,一個(gè)接一個(gè)地按照它們在程序中的順序執(zhí)行)。
選擇語句和重復(fù)(循環(huán))語句都允許程序員改變控制流的正常順序,正如它們的名稱所暗示的,選擇語句提供了從一組設(shè)計(jì)良好的語句組中選擇接下來將要執(zhí)行的語句的能力;而重復(fù)語句提供了轉(zhuǎn)回來重復(fù)執(zhí)行一組語句的能力。
所有的程序都由這這三種(順序、選擇、循環(huán))控制結(jié)構(gòu)構(gòu)成,這就是結(jié)構(gòu)化程序設(shè)計(jì)中的一個(gè)重要原則?!炜刂屏鳎ǔ绦蛄鳎┑诙?,共十八頁,2022年,8月28日§順序結(jié)構(gòu)順序流程意味著每個(gè)語句都是順序執(zhí)行的,一個(gè)接一個(gè)地按照它們在程序中的順序執(zhí)行,且只執(zhí)行一次。第三頁,共十八頁,2022年,8月28日§選擇(分支)結(jié)構(gòu)選擇(分支)結(jié)構(gòu)提供了從一組設(shè)計(jì)良好的語句組中選擇接下來將要執(zhí)行的語句的能力第四頁,共十八頁,2022年,8月28日§循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)提供了轉(zhuǎn)回來重復(fù)執(zhí)行一組語句的能力。第五頁,共十八頁,2022年,8月28日在我們編寫程序的時(shí)候,需要控制程序根據(jù)條件來選擇執(zhí)行相關(guān)的操作。很多時(shí)候,需要判斷的條件往往不止一個(gè),比如從鍵盤輸入一個(gè)數(shù),我們要判斷它是否大于0,并且小于10,這里的“大于”,“小于”就是關(guān)系運(yùn)算,“并且”就是邏輯運(yùn)算。
C語言為我們提供了邏輯運(yùn)算和關(guān)系運(yùn)算,用它們構(gòu)成復(fù)雜的控制條件,來實(shí)現(xiàn)程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)?!?/p>
程序設(shè)計(jì)條件的表示第六頁,共十八頁,2022年,8月28日關(guān)系運(yùn)算和我們數(shù)學(xué)中的比較運(yùn)算基本一致,它們用于兩個(gè)操作數(shù)(整數(shù)、浮點(diǎn)數(shù)、字符數(shù)據(jù))的比較。
C語言為我們提供了6種關(guān)系運(yùn)算符:§關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符意義示例
<小于age<30
>大于height>5.2
>=大于等于taxable<=20000
<=小于等于temp>=98.6
==等于class==‘b’
!=不等于number!=250第七頁,共十八頁,2022年,8月28日關(guān)系運(yùn)算符都雙目運(yùn)算符,滿足從左到右的結(jié)合律。它們的優(yōu)先關(guān)系如下:
1、關(guān)系運(yùn)算符的優(yōu)先級要低于算術(shù)運(yùn)算符。比如語句:c>=b+2;則先計(jì)算b+2的值,再和c比較。
2、關(guān)系運(yùn)算符的優(yōu)先級高于賦值運(yùn)算符。比如語句“a=b>c;”,先進(jìn)行關(guān)系運(yùn)算“b>c”,成立(真),則b>c值為1,不成立(假),則b>c值為0;然后再做賦值運(yùn)算,把1或0賦值給a。
3、關(guān)系運(yùn)算符>、>=、<、<=的優(yōu)先級要高于==、!=的優(yōu)先級,同級之間優(yōu)先級相同。比如語句“c<a!=b;”,先計(jì)算“c<a”,再算“!=”的值,等價(jià)于“(c<a)!=b”。
4、除了數(shù)學(xué)運(yùn)算對象之外,還可以使用關(guān)系運(yùn)算符來比較字符數(shù)據(jù),char值將被強(qiáng)制轉(zhuǎn)換成int值以進(jìn)行比較。
5、不能直接使用關(guān)系運(yùn)算符比較字符串?!?/p>
關(guān)系運(yùn)算符的運(yùn)算第八頁,共十八頁,2022年,8月28日關(guān)系表達(dá)式就是用關(guān)系運(yùn)算符把兩個(gè)表達(dá)式連接起來的式子,它的一般形式是:
表達(dá)式1關(guān)系運(yùn)算符表達(dá)式2
例如,判斷一個(gè)學(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á)式第九頁,共十八頁,2022年,8月28日想要判斷整數(shù)sum的取值是否滿足:0≤sum≤100;千萬不能寫成“0<=sum<=100,而需要按這樣的句式:sum>=0并且sum<=100來表達(dá)。也就是說,除了使用關(guān)系表達(dá)式表示簡單的條件以外,還可以使用邏輯運(yùn)算與、或、非來創(chuàng)建更為復(fù)雜的條件?!爝壿嬤\(yùn)算符和邏輯表達(dá)式第十頁,共十八頁,2022年,8月28日
C語言的邏輯運(yùn)算符有3種:§邏輯運(yùn)算符邏輯運(yùn)算符意義示例&&邏輯與(當(dāng)且僅當(dāng)、并且)a>13&&d>20||邏輯或(或者,二者只要具備其一)a>13||b>20
!邏輯非(條件不成立,取反)!a
邏輯與運(yùn)算符&&是用于兩個(gè)關(guān)系表達(dá)式時(shí),只有當(dāng)每個(gè)表達(dá)式都為“真”時(shí)該條件才為“真”。
邏輯或運(yùn)算符||也是用于兩個(gè)表達(dá)式的,只要兩個(gè)表達(dá)式至少有一個(gè)是“真”,該條件就為“真”。
非運(yùn)算符!將把表達(dá)式更改為它的相反狀態(tài),也就是就,如果表達(dá)式為“真”,那么它的非運(yùn)算的值就為“假”;如果表達(dá)式開始為“假”,那么它的非運(yùn)算的值就為“假”。第十一頁,共十八頁,2022年,8月28日前面表格中的“a>13&&d>20”就是邏輯表達(dá)式,邏輯表達(dá)式的值取1(真),或者0(假)。
一個(gè)邏輯表達(dá)式可以包含多個(gè)邏輯運(yùn)算符,它們的優(yōu)先級順序是:“!”的優(yōu)先級最高,“&&”次之,“||”的優(yōu)先級最低。邏輯運(yùn)算符“&&”、“||”的優(yōu)先級低于所有關(guān)系運(yùn)算符,而“!”的優(yōu)先級高于所有算術(shù)運(yùn)算符?!爝壿嫳磉_(dá)式第十二頁,共十八頁,2022年,8月28日使用C的關(guān)系運(yùn)算表達(dá)式可能會遇到與浮點(diǎn)數(shù)(單精度或雙精度)相關(guān)的微妙的數(shù)學(xué)精度問題。因?yàn)橛?jì)算機(jī)存儲這些數(shù)據(jù)的方式不同,所以應(yīng)該避免使用關(guān)系運(yùn)算符“==”來衡量浮點(diǎn)數(shù)的等同關(guān)系,原因是,很多十進(jìn)制小數(shù)(例如:0.1)不能使用有限的位數(shù)精確地以二進(jìn)制表示,因此,要測試這些數(shù)字的完全等同關(guān)系將會失敗。當(dāng)需要測試非整數(shù)值的等同關(guān)系時(shí),最好要求運(yùn)算對象之差的絕對值小于一個(gè)非常小的值,因此,對于實(shí)際的運(yùn)算對象,常規(guī)表達(dá)式
operandOne==operandTwo應(yīng)該被下面的條件所取代
fabs(operandOne-operandTwo)<EPSILON其中EPSILON是一個(gè)被設(shè)置為任意可接受的足夠小的值(如0.0000001或其他用戶選定的值)的命名常量。因此,如果兩個(gè)運(yùn)算對象之差小于EPSILON的值,那么這兩個(gè)運(yùn)算對象被認(rèn)為是最基本相等?!?/p>
數(shù)學(xué)的精度問題第十三頁,共十八頁,2022年,8月28日例:如果x和y是浮點(diǎn)變量,那么條件
x/y==0.35應(yīng)該以下面的方式來編程:
abs(x/y-0.35)<0.0000001其后面的條件可以確保以二進(jìn)制非整數(shù)數(shù)字所帶來的少量誤差不會影響到測試條件的賦值結(jié)果?!?/p>
數(shù)學(xué)的精度問題舉例第十四頁,共十八頁,2022年,8月28日編寫用來表示下列條件的關(guān)系表達(dá)式或邏輯表達(dá)式(使用你自己選擇的變量名):
⑴一個(gè)人的年齡為30歲
age==30⑵一個(gè)人的體溫大于98.6華氏度
heat>98.6⑶一個(gè)人的身高小于6英尺
height<6.0⑷目前為12月
month==12⑸輸入的字母為m
key=='m'§編寫條件的練習(xí)(一)第十五頁,共十八頁,2022年,8月28日⑹一個(gè)人的年齡為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í)(二)第十六頁,共十八頁,
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《班組安全教育課程》課件
- 單位管理制度集粹選集【員工管理】十篇
- 單位管理制度合并選集【人力資源管理】十篇
- 七年級下《皇帝的新裝》蘇教版-課件
- 單位管理制度范例匯編【職員管理篇】十篇
- 《標(biāo)準(zhǔn)化裝修》課件
- 《項(xiàng)目管理手冊》附件1至附件123
- (高頻非選擇題25題)第1單元 中華人民共和國的成立和鞏固(解析版)
- 2019年高考語文試卷(新課標(biāo)Ⅰ卷)(解析卷)
- 2015年高考語文試卷(新課標(biāo)Ⅱ卷)(解析卷)
- 紫草科旋花科馬鞭草科唇形科茄科課件
- 安徽省安慶市四中學(xué)2023-2024學(xué)年七年級數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 部編版七年級語文上冊(課本全冊)課后習(xí)題參考答案
- 2022-2023學(xué)年成都市高二上英語期末考試題(含答案)
- 大學(xué)英語語法專項(xiàng)練習(xí)題及答案
- 高中英語高頻詞匯拓展延伸
- 2023年浙江杭州西湖文化旅游投資集團(tuán)有限公司招聘筆試題庫含答案解析
- 班主任名工作室個(gè)人工作總結(jié)6篇 名班主任工作室總結(jié)
- 巧克畢業(yè)論文(南昌大學(xué))超星爾雅學(xué)習(xí)通網(wǎng)課章節(jié)測試答案
- 大象版二年級科學(xué)上冊期末試卷(及答案)
- 榕江縣銻礦 礦業(yè)權(quán)出讓收益計(jì)算結(jié)果的報(bào)告
評論
0/150
提交評論