




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
高級語言程序設(shè)計 選擇程序設(shè)計(2)?復(fù)習(xí)1判斷條件的形式:通常是用關(guān)系表達(dá)式2判斷條件的結(jié)果:邏輯真1、邏輯假03實(shí)際上除了關(guān)系表達(dá)式之外,任何有計算結(jié)果的表達(dá)式都可以作為判斷條件,計算結(jié)果不為零的數(shù)均轉(zhuǎn)化為邏輯真,計算結(jié)果為0即為邏輯假算術(shù)表達(dá)式函數(shù)調(diào)用表達(dá)式4甚至是簡單的變量或常量都可以
?選擇結(jié)構(gòu)的兩種形式:
if(condition)…
if(condition)…else…?注意大括號的使用{}復(fù)合語句塊用{}括起來
if(){….多條語句復(fù)合到一起….}
一條語句的時候省略{}?問題3:按成績把學(xué)生分成多組問題描述:教師要把參加某次測驗的學(xué)生按成績的分?jǐn)?shù)段(90以上,80到89,70到79,60到69,小于60)分成多組,并統(tǒng)計出各組的人數(shù)。?分析輸入:學(xué)生成績grade輸出:根據(jù)成績的范圍,輸出不同的結(jié)果A,B,C,D,或者F,和統(tǒng)計結(jié)果
如何判斷grade所在的范圍?90以上,80到89,70到79,60到69,小于60if(grade>=90)√但是if(89<=grade<90)×?復(fù)合判斷條件再分析一下選擇結(jié)構(gòu)if(邏輯判斷表達(dá)式)表達(dá)式為真時執(zhí)行的語句;整個稱為單分支選擇結(jié)構(gòu),也可以看成是一個語句
問?if(邏輯判斷表達(dá)式);??單分支的嵌套
?例如if(grade>=60)
if(grade<70)printf(“youarepassed\n”);if(grade>=60)if(grade<70)printf(“youarepassed\n”);?if(grade>=60){if(grade<70){printf(“youarepassed\n”);\}}if(grade>=60){if(grade<70)printf(“youarepassed\n”);}?雙分支嵌套
?
if(grade>=90)printf(“good!ingroupA\n”);else
if(grade>=80)printf(“better!ingroup\n”);elseprintf(“ok,inCorDorF\n”);?更好的寫法if(grade>=90)printf(“good!ingroupA\n”);elseif(grade>=80)printf(“better!ingroup\n”);elseprintf(“ok,inCorDorF\n”);?注意:多個if-else嵌套,ifelse的匹配原則是:else與前面最近的沒有被使用的if匹配?
?算法設(shè)計(1)1求和變量aNum,bNum,cNum,dNum,fNum初始化為0;2輸入學(xué)生成績;3如果輸入沒有結(jié)束則執(zhí)行(4)否則執(zhí)行(9);4如果成績大于或等于90,輸出分到A組信息,aNum加1,返回到(2);5否則如果成績還大于或等于80,輸出分到B組信息,bNum加1,返回到(2);6否則如果成績還大于或等于70,輸出分到C組信息,cNum加1,返回到(2);7否則如果成績還大于或等于60,輸出分到D組信息,dNum加1,返回到(2);8否則輸出分到F組信息,fNum加1,返回到(2);9輸出統(tǒng)計結(jié)果?算法實(shí)現(xiàn)見ifelsenest.c?
#include<stdio.h>intmain(void){intaNum=0,bNum=0,cNum=0,dNum=0,fNum=0;intgrade;while(scanf("%d",&grade)!=EOF){
if(grade>=90){printf("Good!youbelongingroupA\n");aNum=aNum+1;}
elseif(grade>=80){printf("Better!youbelongingroupB\n");bNum=bNum+1;}
elseif(grade>=70){printf("Middle!youbelongingroupC\n");cNum=cNum+1;}
elseif(grade>=60){printf("Pass!youbelongingroupD\n");dNum=dNum+1;}
else{printf("Sorry,youarefailed,belongingroupF\n");fNum=fNum+1;}
}printf("aNum=%d\n",aNum);printf("bNum=%d\n",bNum);printf("cNum=%d\n",cNum);printf("dNum=%d\n",dNum);printf("FNum=%d\n",fNum);return0;}?分析一下該算法的執(zhí)行情況你可以運(yùn)行算法1的代碼,看看每個學(xué)生成績要判斷幾次才能找到它適合的位置。如果成績都是90以上會怎樣?如果成績都是60、70分甚至更低會怎么樣?正常情況下學(xué)生的成績處于中游的比較多,即大多數(shù)都在70和80之間,符合客觀實(shí)際的、更好的結(jié)構(gòu)應(yīng)該是什么??
?算法實(shí)現(xiàn)見ifelsebetter.c?重新分析一下問題如果把成績除以10取整,可以發(fā)現(xiàn),100分對應(yīng)10,90到99分對應(yīng)9,80到89分對應(yīng)8,依此類推,0到9分的對應(yīng)0
依據(jù)整型常量10,9,8,7,6,5,4,3,2,1,0可斷定該同學(xué)應(yīng)該分到哪一組?算法設(shè)計(2)1求和變量aNum,bNum,cNum,dNum,fNum初始化為0;2輸入學(xué)生成績grade;3如果grade大于100或小于0,輸出錯誤信息,返回到(2);4如果輸入沒有結(jié)束則執(zhí)行(5)否則執(zhí)行(12)5把成績除以10并取整,得到對應(yīng)的整型值number6如果number是10或9,輸出A組信息,aNum加1,返回(2);7如果number是8,輸出B組信息,bNum加1,返回到(2);8如果number是7,輸出C組信息,cNum加1,返回到(2);9如果number是6,輸出D組信息,dNum加1,返回到(2);10如果number是5或4或3或2或1或0,輸出F組信息,fNum加1,返回到(2);11如果number是其它數(shù)字,輸出錯誤信息,返回到(2);12輸出統(tǒng)計結(jié)果。?switchcase多分支選擇結(jié)構(gòu)
switch(整型表達(dá)式){
case常量表達(dá)式:要執(zhí)行的語句 [break;]
case常量表達(dá)式:要執(zhí)行的語句[break;]……[default:默認(rèn)的執(zhí)行語句]
}?幾個組成部分switch(表達(dá)式)必須是整型值的表達(dá)式switch的主體用一對花括號括起{}多個平行的case常量表達(dá)式:
每個case里的要執(zhí)行的語句可以是多條語句,它們不必使用{}括起來。也可以沒有語句在整個swith主體的最后是一個可選的default:?
動作Case1breakCase2Casendefault?算法實(shí)現(xiàn)(switchcase)見switchint.c?5分制成績統(tǒng)計問題輸入的學(xué)生成績是A/a,B/b,…成績是一個字符怎么輸入字符呢?字符是什么?字符可以看成整數(shù)(ascii碼)如何判斷輸入的是什么字符???字符型charcharc1,c2,c3;c1=‘A’;c2=‘b’;c3=‘1’;
?也可以用整型變量存放字符常量,如 intgrade1,grade2;grade1='A';grade2='B';計算機(jī)內(nèi)部接受的是‘A’,‘B’的ASCII碼。?字符比較兩個字符常量或者存放字符常量的變量可以比較大小ascii碼進(jìn)行比較?字符型數(shù)據(jù)的輸入可以使用scanf和printf函數(shù)對字符型數(shù)據(jù)進(jìn)行輸入和輸出,占位符是%c。??ASCII碼是10的字符是回車符。這說明我們輸入了一個字符‘a(chǎn)’后輸入的回車符被變量a第二次讀到了。這個回車符是沒有用的,因此用一個臨時變量t把從輸入緩沖區(qū)中讀出。下例的scanf(“%d”,&t)就起這個作用。??鍵盤讀一個字符的函數(shù)getchar()
a=getchar();代替scanf(“%c”,&a);
getchar();代替scanf(“%c”,&t);?輸出一個字符到屏幕的函數(shù)
putchar(a);代替printf(“%c”,a);?算法設(shè)計(3)1求和變量aNum,bNum,cNum,dNum,fNum初始化為0;2輸入學(xué)生成績grade;3如果輸入沒有結(jié)束則執(zhí)行(4)否則執(zhí)行(10);4如果grade是‘A’,輸出A組信息,aNum加1,返回到(2);5如果grade是‘B’,輸出B組信息,bNum加1,返回到(2);6如果grade是‘C’,輸出C組信息,cNum加1,返回到(2);7如果grade是‘D’,輸出D組信息,dNum加1,返回到(2);8如果grade是‘F’,輸出F組信息,fNum加1,返回到(2);9如果grade是其它字符,輸出錯誤信息,返回到(2);10輸出統(tǒng)計結(jié)果。?算法實(shí)現(xiàn)見switch5grade.c?從鍵盤獲得一個字符的另外兩個函數(shù)#include<conio.h>getche(),它能接收鍵盤輸入的任意一個字符,無需回車即可以接受,自動的顯示到屏幕上,稱之為回顯。getch(),它同getche()不同的就是無回顯。這兩個與getchar()比較,getchar()需要按回車鍵,變量才能在輸入緩沖區(qū)中讀到一個字符,無回顯。?演示三種字符輸入函數(shù)觀察它們的區(qū)別?問題4:判斷某年是否為閏年問題分析:判斷某年是不是閏年的條件“某年能被4整除但不能被100整除或者能被4整除又能被400整除”
某年是閏年的條件為(1)“year能被4整除”并且“year不能被100整除”或者(2)“year能被4整除”并且“year也能被400整除”?并且關(guān)系的兩個判斷如何表示?intpass=0;intgrade1,grade2;scanf(“%d%d”,&grade1,&grade2);如果grade1>=60且grade2>=60pass=1用嵌套?或關(guān)系的兩個判斷如何表示?intnopass=0;intgrade1,grade2;scanf(“%d%d”,&grade1,&grade2);如果grade1<60或者grade2<60則nopass=1順序判斷??
更好的表示方法:邏輯運(yùn)算邏輯運(yùn)算的操作數(shù)是邏輯真或邏輯假邏輯與運(yùn)算&&:1&&1=1;
1&&0=0&&1=0&&0=0;邏輯或運(yùn)算||:
0||1=1||0=1||1=1;0||0=0; 邏輯非運(yùn)算!:
!0=1,!1=0;?邏輯表達(dá)式(grade1>=60)&&(grade2>=60)邏輯與的優(yōu)先級低于關(guān)系運(yùn)算,可以省略()上式等價于grade1>=60&&grade2>=60(grade1<60)||(grade2<60)邏輯或的優(yōu)先級低于關(guān)系運(yùn)算,可以省略();上式等價于grade1<60||grade2<60!(grade>=90)邏輯非是單目運(yùn)算,它的優(yōu)先級高于關(guān)系運(yùn)算,因此不可以省略()?優(yōu)先級與結(jié)合性算術(shù)運(yùn)算>關(guān)系運(yùn)算>邏輯與運(yùn)算>邏輯或運(yùn)算,它們依次降低,但邏輯非運(yùn)算的優(yōu)先級高于算術(shù)運(yùn)算邏輯運(yùn)算是左結(jié)合的?邏輯運(yùn)算的短路性邏輯運(yùn)算的操作數(shù)是0和1,0和1的運(yùn)算是有規(guī)律的由“邏輯與”運(yùn)算組成的表達(dá)式,從左至右計算,遇到0就不用再向右計算了,因這時邏輯表達(dá)式的值必為假,只有都是真的時候向右計算才有意義。(i!=0)&&(j/i>0)由“邏輯或”構(gòu)成的邏輯表達(dá)式也是從左向右計算,如果遇到有一個操作數(shù)的表達(dá)式的值是1就不用再向右計算了,因這時整個邏輯表達(dá)式的值必為真。(grade1<60)||(grade2<60)?利用短路性某年是閏年的條件為(1)“year能被4整除”并且“year不能被100整除”或者(2)“year能被4整除”并且“year也能被400整除”閏年判斷表達(dá)式為:(year%4==0&&year%100!=0)||year%400==0?算法設(shè)計1輸入年份2判斷(year%4==0&&year%100!=0)||year%400==0是否為真,如果為真輸出是閏年?實(shí)現(xiàn)(略)?小結(jié)有了算術(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算可以表達(dá)各種各樣的邏輯判斷條件,使用單分支或雙分支或者多分支結(jié)構(gòu)以及嵌套技術(shù)可以解決各種各樣的邏輯判斷問題?ASMS3000決策分析平臺
1、決策分析平臺的重要性2、訂票、出票、送票統(tǒng)計3、銷售數(shù)據(jù)分析、坐席工作效率分析與航線銷售對比分析的查看與統(tǒng)計4、盈利分析5、員工業(yè)績統(tǒng)計分析6、問題考核?1.1決策分析平臺的重要性全方位的統(tǒng)計公司銷售上的各類數(shù)據(jù),有利于代理人的領(lǐng)導(dǎo)層掌握公司運(yùn)轉(zhuǎn)狀態(tài),針對現(xiàn)有的情況作出進(jìn)一步的決策。
準(zhǔn)確把握員工的工作效率利用決策分析平臺的各類員工工作效率的分析,制定有效地獎懲措施,解決工作效率存在的問題。盈利分析
管理層通過具體的盈利數(shù)據(jù),查看公司的一段時間內(nèi)各個階段的盈利數(shù)據(jù),通過對比分析原因
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南涉外經(jīng)濟(jì)學(xué)院《日本語言學(xué)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025屆甘肅省蘭州市重點(diǎn)中學(xué)高三下學(xué)期第二次月考(5月)數(shù)學(xué)試題含解析
- 鐵道線路基礎(chǔ)知識
- 2024-2025學(xué)年安徽省合肥市肥東縣新城高升學(xué)校高三下學(xué)期5月底模擬考試生物試題試卷含解析
- 河北工程技術(shù)學(xué)院《數(shù)據(jù)采集與審計》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東金融學(xué)院《高級英語(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣西物流職業(yè)技術(shù)學(xué)院《創(chuàng)意思維與方法》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海邦德職業(yè)技術(shù)學(xué)院《制圖基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 達(dá)州職業(yè)技術(shù)學(xué)院《普通生物學(xué)及實(shí)驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 昆明藝術(shù)職業(yè)學(xué)院《公共健康與預(yù)防醫(yī)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- GB/T 20001.6-2017標(biāo)準(zhǔn)編寫規(guī)則第6部分:規(guī)程標(biāo)準(zhǔn)
- GB/T 12970.2-2009電工軟銅絞線第2部分:軟銅絞線
- 涂布調(diào)試技能等級考核筆試試題(O4-O5)附答案
- GCP原則及相關(guān)法律法規(guī)課件
- 金字塔原理(完整版)
- (賽課課件)人教部編版二年級語文《看圖寫話寫事:樂于助人-》
- 液化天然氣(LNG)相關(guān)的知識培訓(xùn)
- 高空作業(yè)車安全技術(shù)交底
- 消防管道水壓試驗記錄
- 機(jī)關(guān)事業(yè)單位調(diào)動人員登記表(樣表2022年)
- 城市管理綜合執(zhí)法局城管執(zhí)法與執(zhí)法程序PPT模板
評論
0/150
提交評論