3判斷與決策-選擇程序設(shè)計(jì)(2)和ASMS3000決策分析平臺(tái)_第1頁(yè)
3判斷與決策-選擇程序設(shè)計(jì)(2)和ASMS3000決策分析平臺(tái)_第2頁(yè)
3判斷與決策-選擇程序設(shè)計(jì)(2)和ASMS3000決策分析平臺(tái)_第3頁(yè)
3判斷與決策-選擇程序設(shè)計(jì)(2)和ASMS3000決策分析平臺(tái)_第4頁(yè)
3判斷與決策-選擇程序設(shè)計(jì)(2)和ASMS3000決策分析平臺(tái)_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

高級(jí)語(yǔ)言程序設(shè)計(jì) 選擇程序設(shè)計(jì)(2)?復(fù)習(xí)1判斷條件的形式:通常是用關(guān)系表達(dá)式2判斷條件的結(jié)果:邏輯真1、邏輯假03實(shí)際上除了關(guān)系表達(dá)式之外,任何有計(jì)算結(jié)果的表達(dá)式都可以作為判斷條件,計(jì)算結(jié)果不為零的數(shù)均轉(zhuǎn)化為邏輯真,計(jì)算結(jié)果為0即為邏輯假算術(shù)表達(dá)式函數(shù)調(diào)用表達(dá)式4甚至是簡(jiǎn)單的變量或常量都可以

?選擇結(jié)構(gòu)的兩種形式:

if(condition)…

if(condition)…else…?注意大括號(hào)的使用{}復(fù)合語(yǔ)句塊用{}括起來(lái)

if(){….多條語(yǔ)句復(fù)合到一起….}

一條語(yǔ)句的時(shí)候省略{}?問(wèn)題3:按成績(jī)把學(xué)生分成多組問(wèn)題描述:教師要把參加某次測(cè)驗(yàn)的學(xué)生按成績(jī)的分?jǐn)?shù)段(90以上,80到89,70到79,60到69,小于60)分成多組,并統(tǒng)計(jì)出各組的人數(shù)。?分析輸入:學(xué)生成績(jī)grade輸出:根據(jù)成績(jī)的范圍,輸出不同的結(jié)果A,B,C,D,或者F,和統(tǒng)計(jì)結(jié)果

如何判斷grade所在的范圍?90以上,80到89,70到79,60到69,小于60if(grade>=90)√但是if(89<=grade<90)×?復(fù)合判斷條件再分析一下選擇結(jié)構(gòu)if(邏輯判斷表達(dá)式)表達(dá)式為真時(shí)執(zhí)行的語(yǔ)句;整個(gè)稱(chēng)為單分支選擇結(jié)構(gòu),也可以看成是一個(gè)語(yǔ)句

問(wèn)?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”);?更好的寫(xiě)法if(grade>=90)printf(“good!ingroupA\n”);elseif(grade>=80)printf(“better!ingroup\n”);elseprintf(“ok,inCorDorF\n”);?注意:多個(gè)if-else嵌套,ifelse的匹配原則是:else與前面最近的沒(méi)有被使用的if匹配?

?算法設(shè)計(jì)(1)1求和變量aNum,bNum,cNum,dNum,fNum初始化為0;2輸入學(xué)生成績(jī);3如果輸入沒(méi)有結(jié)束則執(zhí)行(4)否則執(zhí)行(9);4如果成績(jī)大于或等于90,輸出分到A組信息,aNum加1,返回到(2);5否則如果成績(jī)還大于或等于80,輸出分到B組信息,bNum加1,返回到(2);6否則如果成績(jī)還大于或等于70,輸出分到C組信息,cNum加1,返回到(2);7否則如果成績(jī)還大于或等于60,輸出分到D組信息,dNum加1,返回到(2);8否則輸出分到F組信息,fNum加1,返回到(2);9輸出統(tǒng)計(jì)結(jié)果?算法實(shí)現(xiàn)見(jià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的代碼,看看每個(gè)學(xué)生成績(jī)要判斷幾次才能找到它適合的位置。如果成績(jī)都是90以上會(huì)怎樣?如果成績(jī)都是60、70分甚至更低會(huì)怎么樣?正常情況下學(xué)生的成績(jī)處于中游的比較多,即大多數(shù)都在70和80之間,符合客觀實(shí)際的、更好的結(jié)構(gòu)應(yīng)該是什么??

?算法實(shí)現(xiàn)見(jiàn)ifelsebetter.c?重新分析一下問(wèn)題如果把成績(jī)除以10取整,可以發(fā)現(xiàn),100分對(duì)應(yīng)10,90到99分對(duì)應(yīng)9,80到89分對(duì)應(yīng)8,依此類(lèi)推,0到9分的對(duì)應(yīng)0

依據(jù)整型常量10,9,8,7,6,5,4,3,2,1,0可斷定該同學(xué)應(yīng)該分到哪一組?算法設(shè)計(jì)(2)1求和變量aNum,bNum,cNum,dNum,fNum初始化為0;2輸入學(xué)生成績(jī)grade;3如果grade大于100或小于0,輸出錯(cuò)誤信息,返回到(2);4如果輸入沒(méi)有結(jié)束則執(zhí)行(5)否則執(zhí)行(12)5把成績(jī)除以10并取整,得到對(duì)應(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ù)字,輸出錯(cuò)誤信息,返回到(2);12輸出統(tǒng)計(jì)結(jié)果。?switchcase多分支選擇結(jié)構(gòu)

switch(整型表達(dá)式){

case常量表達(dá)式:要執(zhí)行的語(yǔ)句 [break;]

case常量表達(dá)式:要執(zhí)行的語(yǔ)句[break;]……[default:默認(rèn)的執(zhí)行語(yǔ)句]

}?幾個(gè)組成部分switch(表達(dá)式)必須是整型值的表達(dá)式switch的主體用一對(duì)花括號(hào)括起{}多個(gè)平行的case常量表達(dá)式:

每個(gè)case里的要執(zhí)行的語(yǔ)句可以是多條語(yǔ)句,它們不必使用{}括起來(lái)。也可以沒(méi)有語(yǔ)句在整個(gè)swith主體的最后是一個(gè)可選的default:?

動(dòng)作Case1breakCase2Casendefault?算法實(shí)現(xiàn)(switchcase)見(jiàn)switchint.c?5分制成績(jī)統(tǒng)計(jì)問(wèn)題輸入的學(xué)生成績(jī)是A/a,B/b,…成績(jī)是一個(gè)字符怎么輸入字符呢?字符是什么?字符可以看成整數(shù)(ascii碼)如何判斷輸入的是什么字符???字符型charcharc1,c2,c3;c1=‘A’;c2=‘b’;c3=‘1’;

?也可以用整型變量存放字符常量,如 intgrade1,grade2;grade1='A';grade2='B';計(jì)算機(jī)內(nèi)部接受的是‘A’,‘B’的ASCII碼。?字符比較兩個(gè)字符常量或者存放字符常量的變量可以比較大小ascii碼進(jìn)行比較?字符型數(shù)據(jù)的輸入可以使用scanf和printf函數(shù)對(duì)字符型數(shù)據(jù)進(jìn)行輸入和輸出,占位符是%c。??ASCII碼是10的字符是回車(chē)符。這說(shuō)明我們輸入了一個(gè)字符‘a(chǎn)’后輸入的回車(chē)符被變量a第二次讀到了。這個(gè)回車(chē)符是沒(méi)有用的,因此用一個(gè)臨時(shí)變量t把從輸入緩沖區(qū)中讀出。下例的scanf(“%d”,&t)就起這個(gè)作用。??鍵盤(pán)讀一個(gè)字符的函數(shù)getchar()

a=getchar();代替scanf(“%c”,&a);

getchar();代替scanf(“%c”,&t);?輸出一個(gè)字符到屏幕的函數(shù)

putchar(a);代替printf(“%c”,a);?算法設(shè)計(jì)(3)1求和變量aNum,bNum,cNum,dNum,fNum初始化為0;2輸入學(xué)生成績(jī)grade;3如果輸入沒(méi)有結(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是其它字符,輸出錯(cuò)誤信息,返回到(2);10輸出統(tǒng)計(jì)結(jié)果。?算法實(shí)現(xiàn)見(jiàn)switch5grade.c?從鍵盤(pán)獲得一個(gè)字符的另外兩個(gè)函數(shù)#include<conio.h>getche(),它能接收鍵盤(pán)輸入的任意一個(gè)字符,無(wú)需回車(chē)即可以接受,自動(dòng)的顯示到屏幕上,稱(chēng)之為回顯。getch(),它同getche()不同的就是無(wú)回顯。這兩個(gè)與getchar()比較,getchar()需要按回車(chē)鍵,變量才能在輸入緩沖區(qū)中讀到一個(gè)字符,無(wú)回顯。?演示三種字符輸入函數(shù)觀察它們的區(qū)別?問(wèn)題4:判斷某年是否為閏年問(wèn)題分析:判斷某年是不是閏年的條件“某年能被4整除但不能被100整除或者能被4整除又能被400整除”

某年是閏年的條件為(1)“year能被4整除”并且“year不能被100整除”或者(2)“year能被4整除”并且“year也能被400整除”?并且關(guān)系的兩個(gè)判斷如何表示?intpass=0;intgrade1,grade2;scanf(“%d%d”,&grade1,&grade2);如果grade1>=60且grade2>=60pass=1用嵌套?或關(guān)系的兩個(gè)判斷如何表示?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)先級(jí)低于關(guān)系運(yùn)算,可以省略()上式等價(jià)于grade1>=60&&grade2>=60(grade1<60)||(grade2<60)邏輯或的優(yōu)先級(jí)低于關(guān)系運(yùn)算,可以省略();上式等價(jià)于grade1<60||grade2<60!(grade>=90)邏輯非是單目運(yùn)算,它的優(yōu)先級(jí)高于關(guān)系運(yùn)算,因此不可以省略()?優(yōu)先級(jí)與結(jié)合性算術(shù)運(yùn)算>關(guān)系運(yùn)算>邏輯與運(yùn)算>邏輯或運(yùn)算,它們依次降低,但邏輯非運(yùn)算的優(yōu)先級(jí)高于算術(shù)運(yùn)算邏輯運(yùn)算是左結(jié)合的?邏輯運(yùn)算的短路性邏輯運(yùn)算的操作數(shù)是0和1,0和1的運(yùn)算是有規(guī)律的由“邏輯與”運(yùn)算組成的表達(dá)式,從左至右計(jì)算,遇到0就不用再向右計(jì)算了,因這時(shí)邏輯表達(dá)式的值必為假,只有都是真的時(shí)候向右計(jì)算才有意義。(i!=0)&&(j/i>0)由“邏輯或”構(gòu)成的邏輯表達(dá)式也是從左向右計(jì)算,如果遇到有一個(gè)操作數(shù)的表達(dá)式的值是1就不用再向右計(jì)算了,因這時(shí)整個(gè)邏輯表達(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è)計(jì)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ù)可以解決各種各樣的邏輯判斷問(wèn)題?ASMS3000決策分析平臺(tái)

1、決策分析平臺(tái)的重要性2、訂票、出票、送票統(tǒng)計(jì)3、銷(xiāo)售數(shù)據(jù)分析、坐席工作效率分析與航線銷(xiāo)售對(duì)比分析的查看與統(tǒng)計(jì)4、盈利分析5、員工業(yè)績(jī)統(tǒng)計(jì)分析6、問(wèn)題考核?1.1決策分析平臺(tái)的重要性全方位的統(tǒng)計(jì)公司銷(xiāo)售上的各類(lèi)數(shù)據(jù),有利于代理人的領(lǐng)導(dǎo)層掌握公司運(yùn)轉(zhuǎn)狀態(tài),針對(duì)現(xiàn)有的情況作出進(jìn)一步的決策。

準(zhǔn)確把握員工的工作效率利用決策分析平臺(tái)的各類(lèi)員工工作效率的分析,制定有效地獎(jiǎng)懲措施,解決工作效率存在的問(wèn)題。盈利分析

管理層通過(guò)具體的盈利數(shù)據(jù),查看公司的一段時(shí)間內(nèi)各個(gè)階段的盈利數(shù)據(jù),通過(guò)對(duì)比分析原因

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論