關(guān)系表達(dá)式和邏輯表達(dá)式_第1頁
關(guān)系表達(dá)式和邏輯表達(dá)式_第2頁
關(guān)系表達(dá)式和邏輯表達(dá)式_第3頁
關(guān)系表達(dá)式和邏輯表達(dá)式_第4頁
關(guān)系表達(dá)式和邏輯表達(dá)式_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論