任務(wù)4-1、描述條件邏輯_第1頁
任務(wù)4-1、描述條件邏輯_第2頁
任務(wù)4-1、描述條件邏輯_第3頁
任務(wù)4-1、描述條件邏輯_第4頁
任務(wù)4-1、描述條件邏輯_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué)生成績的分類處理分支程序設(shè)計項目4回顧與作業(yè)點評 什么是宏定義?什么是宏定義? 格式化輸入輸出的語法規(guī)則格式化輸入輸出的語法規(guī)則#include#define SUB(X,Y) (X)*Yvoid main() int a=3, b=4;printf(%d, SUB(a+, b+);閱讀程序,程序運行結(jié)果是什么?預(yù)習(xí)檢查 邏輯運算符有哪些? 如何用C語言描述單分支和多分支結(jié)構(gòu)?項目任務(wù) 需求描述 根據(jù)學(xué)生的成績判斷其等級。其要求是:輸入學(xué)生的考試百分制成績, 90分以上為“優(yōu)”,8089分為“良”,7079分為“中”,6069為“及格”,60分以下為“不及格”本章目標(biāo)掌握如何用C語言來表達(dá)條

2、件邏輯熟練掌握if 語句的應(yīng)用熟練掌握switch 語句的應(yīng)用項目任務(wù)任務(wù)任務(wù)4-1、描述條件邏輯、描述條件邏輯1、如何描述邏輯關(guān)系?2、如何解決程序中需要根據(jù)不同狀態(tài)進(jìn)行判斷的情況?關(guān)系運算符 3-1 表達(dá)式2關(guān)系運算符關(guān)系運算符關(guān)系表達(dá)式的關(guān)系表達(dá)式的計算結(jié)果計算結(jié)果 = = 邏輯值(真或假)邏輯值(真或假)在在C C語言中,語言中,“0 0”表示表示“假假”,“非非0 0”表表示示“真真”表達(dá)式1關(guān)系運算符用于測試兩個操作數(shù)或兩個表達(dá)式之間的關(guān)系,其中操作數(shù)可以是變量、常量或表達(dá)式。在語言中有以下關(guān)系運算符: (小于)、 (大于)、= (大于或等于)、= (等于)、!= (不等于)。關(guān)系

3、運算符 3-2 =!=!=關(guān)系運算符關(guān)系運算符表達(dá)式表達(dá)式1 1表達(dá)式表達(dá)式2 2關(guān)系運算符的優(yōu)先級 關(guān)系運算符都是雙目運算符,其結(jié)合性均為左結(jié)合。關(guān)系運算符的優(yōu)先級低于算術(shù)運算符,高于賦值運算符。在六個關(guān)系運算符中,,=的優(yōu)先級相同,高于=和!=,=和!=的優(yōu)先級相同。a+bc-dx3/2a+1c-i-5*j=k+1案例【案例【案例4-1】觀察下面表達(dá)式的值】觀察下面表達(dá)式的值。#include /1void main() /2 int i_a,i_b,i_c; /3 char c_a,c_b ; /4 i_a=10; /5 i_b=20; /6 c_a=a; /7 c_b=b; /8 i_

4、c=i_ai_b; /9 printf(i_a=20 ?:%dn,i_a=20); /10 printf(i_ai_b ?:%dn,i_ad ?:%dn,c_a!=c_bd);/12 printf(c_ac_b ?:%dn,c_ac_b); /13 printf(i_a+c_ai_b ?:%dn,(i_a+c_a)i_b); /14由于i_a=10,所以i_a20,表達(dá)式i_a=20為假,輸出0i_b=20,i_a,所以先運算c_bd為假,其值為0,所以c_a!=0為真,其值為1i_a+c_a其值是10+97=107,所以i_a + c_a)i_b為假,值為0.邏輯運算符 運算運算運算符運算符

5、表達(dá)式表達(dá)式邏輯“與”&operand1 & operand2邏輯“或”|operand1 | operand2邏輯“非”!operand1 邏輯運算符用于連接一個或多個條件,判斷這些條件是否成立 邏輯運算符的類型為: 邏輯“與”運算符 &所有學(xué)科及格考勤率達(dá)到 75%留級留級留級升級YesNoNoNoNoYesYesYes邏輯“與”運算符 &表達(dá)式表達(dá)式 1 1表達(dá)式表達(dá)式 2 2結(jié)果結(jié)果000010100111所有學(xué)科及格考勤率達(dá)到 75%留級留級NoNo升級YesYes留級NoYes留級留級NoYes邏輯“或”運算符 |無法支付可支付可支付可支付YesNo

6、NoNoNoYesYesYes購物帳單信用卡現(xiàn)金信用卡邏輯“或”運算符 |表達(dá)式 1表達(dá)式 2結(jié)果000011101111無法支付NoNo可支付NoYes可支付NoYes可支付YesYes邏輯“非”運算符 !不帶傘帶傘NoYes天氣 NOT 陰天邏輯“非”運算符 !表達(dá)式結(jié)果1001天氣 NOT 陰天真真假帶傘操作不帶傘邏輯運算符總結(jié)所有學(xué)科所有學(xué)科及格及格考勤率達(dá)到考勤率達(dá)到 75%&天氣天氣 NOT 陰天陰天只有當(dāng)兩個兩個條件都為真真時才執(zhí)行操作只要任何任何一個條件為真真時就執(zhí)行操作對原條件取反取反,即:如果原條件為假時就執(zhí)行操作|!邏輯運算符和表達(dá)式 邏輯運算的值也為邏輯運算的值

7、也為“真真”和和“假假”兩種,用兩種,用“1”和和“0 ”來表示來表示。其求值規(guī)則如下:雖然編譯在給出邏輯運算值時,以“1”代表“真”,“0 ”代表“假” 。但反過來在判斷一個量是為“真”還是為“假”時,以“0”代表“假”,以非“0”的數(shù)值作為“真”與運算 &:參與運算的兩個量都為真時,結(jié)果才為真,否則為假?;蜻\算|:參與運算的兩個量只要有一個為真,結(jié)果就為真。 兩個量都為假時,結(jié)果為假。非運算!:參與運算量為真時,結(jié)果為假;參與運算量為假時,結(jié)果為真。邏輯表達(dá)式邏輯表達(dá)式的一般形式為:表達(dá)式 邏輯運算符 表達(dá)式其中表達(dá)式可以又是邏輯表達(dá)式,從而組成了嵌套的情形 (a&b)&a

8、mp;c根據(jù)邏輯運算符的左結(jié)合性,上式也可寫為: a&b&c問題描述:要求用戶輸入一個字符,用程序判斷該字符是否為小寫字母 ,并輸出相應(yīng)的信息。#include void main()char a;printf(n請輸入一個字符:);scanf(%c,&a);if(a=a & a=z) printf(您輸入的字符是小寫字母n,a);elseprintf(您輸入的字符不是小寫字母n,a);使用&運算符的示例內(nèi)存內(nèi)存numT請輸入一個字符:T您輸入的字符不是小寫字母問題描述:接受用戶輸入的三種商品的價格。如果購買的三種商品中至少有一種商品的價格大于 50 或

9、者三種商品的總額大于 100,則折扣率為15,否則折扣率為,計算并顯示用戶應(yīng)付的錢數(shù)。 #include void main() float rate1,rate2,rate3; double discount,total; printf(n請輸入第一種商品的價格:); scanf(%f,&rate1); printf(n請輸入第二種商品的價格:); scanf(%f,&rate2); printf(n請輸入第三種商品的價格:); scanf(%f,&rate3); total=rate1+rate2+rate3; if(rate150)|(rate250)|(rate

10、350)|(total100) discount=0.15*total; total=total-discount; printf(n折后總價為:%6.2fn,total); else printf(n總價為:%6.2fn,total); 使用 | 運算符的示例 if(rate150)|(rate250)|(rate350)|(total100)輸出:請輸入第一種商品的價格:34請輸入第二種商品的價格:42請輸入第三種商品的價格:38折后總價為:96.90問題描述:確定用戶輸入的數(shù)字是否可以被5整除,并輸出相應(yīng)的消息。 #include void main() int num; printf(

11、n 請輸入一個數(shù):); scanf(%d,&num); if (!(num %5) printf(n 該數(shù)能被 5 整除 n ); else printf(n 該數(shù)不能被 5 整除 n );使用 ! 運算符的示例請輸入一個數(shù):90該數(shù)能被 5 整除運算符優(yōu)先級 2-1 當(dāng)我們遇到一個復(fù)雜表達(dá)式時,需要確定先執(zhí)行哪種運算,此時就需要考慮運算符的優(yōu)先級 z = x + y g * h * (t/20)+ 65 r % 2先算哪部分加?減?取余?除?括號?要解決此問題,需要使用:運算符優(yōu)先級邏輯運算符和表達(dá)式 與運算符&和或運算符|均為雙目運算符。具有左結(jié)合性。非運算符!為單目運算符

12、,具有右結(jié)合性。邏輯運算符和其它運算符優(yōu)先級的關(guān)系可表示如下: “&”和“|”低于關(guān)系運算符,“!”高于算術(shù)運算符。 按照運算符的優(yōu)先順序可以得出:ab & cd 等價于 (ab)&(cd)!b=c|da 等價于 (!b)=c)|(dc&x+yc)&(x+y)b)運算符優(yōu)先級 2-2運算符運算符描述描述結(jié)合性結(jié)合性()圓括號自左向右!, +, -, sizeof邏輯非,遞增, 遞減,求數(shù)據(jù)類型的大小自右向左*, /, %乘法,除法,取余自左向右+, -加法,減法自左向右, , =小于,小于等于,大于,大于等于自左向右= =, !=等于,不等于自左向右&a

13、mp;邏輯與自左向右|邏輯或自左向右=,+=, *=, /=, %= ,-=賦值運算符,復(fù)合賦值運算符自右向左案例【案例【案例4-2】觀察下面程序的值】觀察下面程序的值#include void main() int x=13,y=22,z=4; printf( %d, y=x | z=y); printf( %d,!(x=x為真,表達(dá)式y(tǒng)=x | z=y 為真,真輸出為1;xy為假,!(xy) 為真,!Z為假,表達(dá)式!(xb)?a:b;執(zhí)行該語句的語義是:如ab為真,則把a賦予max,否則把b 賦予max。條件運算符和條件表達(dá)式使用條件表達(dá)式時,還應(yīng)注意以下幾點:ab?a:cd?c:d應(yīng)理解

14、為ab?a:(cd?c:d)條件表達(dá)式嵌套的情形,即其中的表達(dá)式3又是一個條件表達(dá)式。1)、條件運算符的運算優(yōu)先級低于關(guān)系運算符和算術(shù)運算符,但高于賦值符 max=(ab)?a:b 等價于max=ab?a:b2)、條件運算符的結(jié)合方向是自右至左。3)、條件運算符?和:是一對運算符,不能分開單獨使用。條件運算符和條件表達(dá)式【案例【案例4-3】觀察下面程序的值】觀察下面程序的值#include void main() int x=13,y=22,z=4; printf(%dn,(z=y)?1:0); printf(%dn,xy?xz?x:z:yz?y:z);(z=y)為假,表達(dá)式(z=y)?1:0

15、的值為0 xy為假,執(zhí)行表達(dá)式y(tǒng)z?y:z ,yz為真,所以表達(dá)式的值為23x+后x的值為14,先y+1后輸出,所以輸出 14 23問題描述: 判定給定的年份是否為閏年。提示:閏年的判定規(guī)則為:能被 4 整除但不能被 100 整除的年份,或能被 400 整除的年份。 #include void main() int year; printf(n 請輸入年份:); scanf(%d,&year); if(year % 4 =0 & year % 100 != 0) | (year % 400 = 0) printf(n %d 年是閏年 n , year); else printf

16、(n %d 年不是閏年 n , year);綜合示例1請輸入年份:20052005 年不是閏年任務(wù)分析與實施 需求說明: 判斷某學(xué)生是否獲得獎學(xué)金。獲得獎學(xué)金的條件是:三門考試成績的平均成績在80分以上且一門考試成績不低于70分,或兩門考試成績均在90分以上,一門考試不低于60分。寫出其邏輯表達(dá)式任務(wù)分析與實施 思路分析 輸入三門課程的成績賦值給scoreA,scoreB,scoreC;獲得獎學(xué)金的條件為:(1)、(scoreA+scoreB+scoreC)/3=70并且scoreA=70、scoreB=70 scoreC=70。(2)、scoreA=90 并且 scoreB=90并且scoreC=60(3)、scoreA=90 并且 scoreB=60并且scoreC=90(4)、scoreA=60 并且 scoreB=90并且scoreC=90完成時間:完成時間:20分鐘分鐘小結(jié) 2-

溫馨提示

  • 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

提交評論