算法語言與數(shù)據(jù)結(jié)構(gòu)第3章學(xué)習(xí)教案
《算法語言與數(shù)據(jù)結(jié)構(gòu)第3章學(xué)習(xí)教案》由會員分享,可在線閱讀,更多相關(guān)《算法語言與數(shù)據(jù)結(jié)構(gòu)第3章學(xué)習(xí)教案(139頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、會計學(xué)1算法語言算法語言(sun f y yn)與數(shù)據(jù)結(jié)構(gòu)第與數(shù)據(jù)結(jié)構(gòu)第3章章第一頁,共139頁。第2頁/共139頁第二頁,共139頁。第3頁/共139頁第三頁,共139頁。第4頁/共139頁第四頁,共139頁。 3.1 程序設(shè)計中的科學(xué)思維方法程序設(shè)計中的科學(xué)思維方法 3.2 關(guān)系運算符和關(guān)系表達式關(guān)系運算符和關(guān)系表達式2 3.3 使用關(guān)系表達式解決一些問題使用關(guān)系表達式解決一些問題3 3.4 枚舉法的思路枚舉法的思路4 3.5 循環(huán)語句循環(huán)語句5 3.6 分支語句分支語句6 3.8 邏輯判斷與解題邏輯判斷與解題8 3.7 輸入輸出語句輸入輸出語句7第5頁/共139頁第五頁,共139頁。 1
2、. 枚舉法 2. 迭代法 3. 遞歸法 4. 遞推法 5. 分治法6. 回溯法 7. 模擬人工第6頁/共139頁第六頁,共139頁。第7頁/共139頁第七頁,共139頁。AB順序順序(shnx)結(jié)結(jié)構(gòu)構(gòu)選擇選擇(xunz)結(jié)結(jié)構(gòu)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)PBAPA3.1 程序設(shè)計中的科學(xué)思維方法第8頁/共139頁第八頁,共139頁。3.1 程序設(shè)計(chn x sh j)中的科學(xué)思維方法第9頁/共139頁第九頁,共139頁。問題: 求12+22+502輸出sum開始 輸入n的值 置sum初值為0 置i初值為1 當in,執(zhí)行(zhxng)下面操作: sum = i*i+sum i = i+1 打印sum
3、的值 結(jié)束3.1 程序設(shè)計中的科學(xué)思維方法第10頁/共139頁第十頁,共139頁。問題(wnt): 求12+22+5023.1 程序設(shè)計中的科學(xué)思維方法第11頁/共139頁第十一頁,共139頁。1.結(jié)構(gòu)化程序設(shè)計(shj)基本思想自頂向下 逐步細化 模塊化 2.結(jié)構(gòu)化程序設(shè)計(shj)的過程建立數(shù)學(xué)模型選定算法,用適當工具描述算法編程測試及調(diào)試 (1)建立數(shù)學(xué)模型 規(guī)定了數(shù)據(jù)間準確的關(guān)系,如:數(shù)學(xué)公式、一張關(guān)系圖、一張二維數(shù)據(jù)表 (2)選定算法,用適當工具描述算法第12頁/共139頁第十二頁,共139頁。1.1 Set total to 01.2 Set counter to 12.1 Whi
4、le counter=30 Input the next data Add the data to total Add 1 to counter3.1 Set average to tatal/303.2 Print the average3.1 程序設(shè)計中的科學(xué)思維(swi)方法 第13頁/共139頁第十三頁,共139頁。1.1 Set failures to 01.2 Set passes to 01.3 Set counter to 1 While counter=302.1 Input the next grade2.2 If the grade60 Add 1 to failures
5、 Else Add 1 to passes2.3 Add 1 to counter3.1 Print the failures3.2 Print the passes 3.1 程序設(shè)計中的科學(xué)思維(swi)方法 第14頁/共139頁第十四頁,共139頁。3.2 關(guān)系(gun x)運算符和關(guān)系(gun x)表達式第15頁/共139頁第十五頁,共139頁。3.2 關(guān)系(gun x)運算符和關(guān)系(gun x)表達式第16頁/共139頁第十六頁,共139頁。3.2 關(guān)系(gun x)運算符和關(guān)系(gun x)表達式第17頁/共139頁第十七頁,共139頁。/ */ * 程 序: 3_0.c */ *
6、功 能: 為講解關(guān)系(gun x)運算而編 */ * 編制人: wuwh */ * 時 間: 2001年6月27日 */ *#include void main( )printf(“ 3 2 的邏輯值是 %d , 1 為真 n“, 3 2 ) ; printf(“ 3 =2 的邏輯值是 %d , 1 為真 n“, 3 = 2 ) ; printf(“ 3 = 2 的邏輯值是 %d , 0 為假n“, 3 = 2 ) ; printf(“ 3 2 的邏輯值是 %d , 0 為假n“, 3 2 ) ;printf(“ 3 = 2 的邏輯值是 %d , 0 為假n“, 3 = 2 ) ;printf
7、(“ 3 != 2 的邏輯值是 %d , 1為真 n“, 3 != 2 ) ;3.1 關(guān)系(gun x)運算符和關(guān)系(gun x)表達式第18頁/共139頁第十八頁,共139頁。3 = 2 的邏輯值是 0, 0為假3 != 2 的邏輯值是 1, 1為真3.2 關(guān)系(gun x)運算符和關(guān)系(gun x)表達式第19頁/共139頁第十九頁,共139頁。非 0 即 1,是布爾值。關(guān)系表達式成立,其值為 1 。關(guān)系表達式不成立,其值為 0 。上述性質(zhì)在編寫程序時用到,因此很重要。3.2 關(guān)系(gun x)運算符和關(guān)系(gun x)表達式第20頁/共139頁第二十頁,共139頁。3.3 使用關(guān)系表達式
8、解決(jiju)一些問題第21頁/共139頁第二十一頁,共139頁。3.3 使用關(guān)系(gun x)表達式解決一些問題第22頁/共139頁第二十二頁,共139頁。thisman 65地址地址(dzh)xxxx3.3 使用關(guān)系表達式解決(jiju)一些問題第23頁/共139頁第二十三頁,共139頁。/ */ * 程 序: 3_1.c */ * 功 能: 驗證A和65是否相等(xingdng) */ * 編制人: wuwh */ * 時 間: 2001年6月27日 */ *#include / 預(yù)編譯命令void main( )/ 主函數(shù)/ 主函數(shù)開始char thisman;/ 聲明字符變量thi
9、sman,thisman = A;/ thisman賦值為A/ 輸出關(guān)系表達式“65=A”的值printf( 65=A 關(guān)系表達式的值為“,65=A) ;/ 主函數(shù)結(jié)束3.3 使用關(guān)系表達式解決(jiju)一些問題第24頁/共139頁第二十四頁,共139頁。3.4 枚舉法的思路(sl)第25頁/共139頁第二十五頁,共139頁。3.4 枚舉法的思路(sl)第26頁/共139頁第二十六頁,共139頁。3.4 枚舉法的思路(sl)第27頁/共139頁第二十七頁,共139頁。3.4 枚舉法的思路(sl)第28頁/共139頁第二十八頁,共139頁。3.4 枚舉法的思路(sl)第29頁/共139頁第二十
10、九頁,共139頁。for (k=1; k=4; k=k+1) / 計數(shù)型循環(huán),循環(huán)的控制變量為k / 循環(huán)體開始thisman=64+k; / 產(chǎn)生被試者,依次為A,B,C,D / 賦值給thismansum = (thisman!=A)/ 測試A的話(dehu)是否為真 +(thisman=C) / 測試B的話(dehu)是否為真 +(thisman=D) / 測試C的話(dehu)是否為真 +(thisman!=D); / 測試D的話(dehu)是否為真 / 循環(huán)體結(jié)束3.5 循環(huán)(xnhun)語句第30頁/共139頁第三十頁,共139頁。3.5 循環(huán)語句第31頁/共139頁第三十一頁,共
11、139頁。 測試表達式測試表達式 2 2 求解表達式求解表達式 1 1 執(zhí)行循環(huán)體語句執(zhí)行循環(huán)體語句 求解表達式求解表達式 3 3 執(zhí)行執(zhí)行forfor的下一條語句的下一條語句 假假 真真 循環(huán)控制變量置初值循環(huán)控制變量置初值 測試是否測試是否未未到終值到終值 讓循環(huán)控制變量增值讓循環(huán)控制變量增值 3.5 循環(huán)(xnhun)語句第32頁/共139頁第三十二頁,共139頁。3.5 循環(huán)(xnhun)語句第33頁/共139頁第三十三頁,共139頁。/ */ * 程 序: 3_2.c(計數(shù)循環(huán)示例) */ * 功 能: 求自然數(shù)1100之和 */ * 編制人: wuwh */ * 時 間: 2001
12、年9月10日 */ *#include / 預(yù)編譯命令void main( )/ 主函數(shù)/ 主函數(shù)開始int i=0, sum=0;/ 聲明i,sum為整型變量(binling)并初始化為0for (i=1; i=100; i=i+1)/ for 循環(huán)/ 循環(huán)體開始sum = sum+i;/ 累加求和/ 循環(huán)體結(jié)束 printf(“自然數(shù)1100之和為 %d“, sum);/ 輸出累加結(jié)果/ 主函數(shù)結(jié)束3.5 循環(huán)(xnhun)語句第34頁/共139頁第三十四頁,共139頁。3.5 循環(huán)(xnhun)語句第35頁/共139頁第三十五頁,共139頁。/*/* 程序名:3_3.c(循環(huán)語句示例)
13、*/* 作 者:wuwh */* 編制時間:2002年9月20日 */* 主要功能:計算10 的階乘 */*#include / 預(yù)編譯(biny)命令void main() / 主函數(shù) / 主函數(shù)開始int i = 0, j = 0, k = 0; / 聲明 i,j,k 為整型變量,并初始化為0long sum = 1; / 聲明 sum 為長整型變量,并初始化為1for (i = 10; i = 1; i = i-1) / 用 for 循環(huán)作累乘運算printf( i=%d“, i) ; / 顯示isum = sum * i; / 每一步乘積printf( tsum=%d“, sum);
14、/ 顯示每一步乘積for (j = 1; j = 5500; j = j+1) / 用 for 循環(huán)延遲時間for (k = 1; k = 1; i = i-1) cout i= i ; sum = sum * i; cout tsum= sum endl; 3.5 循環(huán)(xnhun)語句第37頁/共139頁第三十七頁,共139頁。/*/* 程序名:3_3.c(循環(huán)語句示例) */* 作 者:wuwh */* 編制時間:2002年9月20日 */* 主要功能:計算10 的階乘 */*#include / 預(yù)編譯命令void main() / 主函數(shù) / 主函數(shù)開始int i = 0, j =
15、0, k = 0; / 聲明 i,j,k 為整型變量,并初始化為0long sum = 1; / 聲明 sum 為長整型變量,并初始化為1for (i = 10; i = 1; i = i-1) / 用 for 循環(huán)作累乘運算(yn sun)printf( i=%d“, i ); / 顯示isum = sum * i; / 每一步乘積printf( tsum=%d ,sum); / 顯示每一步乘積for (j = 1; j = 5500; j = j+1) / 用 for 循環(huán)延遲時間for (k = 1; k = 10000; k = k+1);/用 for 循環(huán)延遲時間 printf( 1
16、0!=%d , sum );/ 顯示運算(yn sun)結(jié)果 /主函數(shù)結(jié)束3.5 循環(huán)(xnhun)語句第38頁/共139頁第三十八頁,共139頁。#include void main() int i = 0, j = 0, k = 0; long sum = 1; for (i = 10; i = 1; i = i-1)printf( i=%d , i ); sum = sum * i; printf(tsum=%d , sum); for (j = 1; j = 5500; j = j+1)for (k = 1; k = 10000; k = k+1); printf(10!=%d , s
17、um); 3.5 循環(huán)(xnhun)語句第39頁/共139頁第三十九頁,共139頁。3.5 循環(huán)(xnhun)語句第40頁/共139頁第四十頁,共139頁。3.5 循環(huán)(xnhun)語句第41頁/共139頁第四十一頁,共139頁。 初初始始時時 sum=1 10 9 8 7 6 5 4 3 2 1 Sum * 10 Sum * 9 Sum * 8 Sum*1 Sum Sum 3.5 循環(huán)(xnhun)語句第42頁/共139頁第四十二頁,共139頁。3.5 循環(huán)(xnhun)語句第43頁/共139頁第四十三頁,共139頁。實際上循環(huán)實際上循環(huán)(xnhun)有好幾種方式,如:有好幾種方式,如:Go
18、to和和if構(gòu)成構(gòu)成(guchng)的循環(huán)的循環(huán)do-while構(gòu)成構(gòu)成(guchng)的循環(huán)的循環(huán)while構(gòu)成構(gòu)成(guchng)的循環(huán)的循環(huán)for構(gòu)成構(gòu)成(guchng)的循環(huán)的循環(huán)對于以上的循環(huán)對于以上的循環(huán)(xnhun),我們將通過具體的例子來闡明。,我們將通過具體的例子來闡明。3.5 循環(huán)語環(huán)語句第44頁/共139頁第四十四頁,共139頁。句式句式(j sh)為為 goto 標號標號標號必須是字母,數(shù)字標號必須是字母,數(shù)字(shz),下劃線組成,第一個字母不能是數(shù),下劃線組成,第一個字母不能是數(shù)字字(shz)。1012nnmain()main()方法方法(fngf)(fngf)之一
19、之一 int i,sum1,j,sum2,k,sum3;int i,sum1,j,sum2,k,sum3;printf(Please input the value of i,j and knn);printf(Please input the value of i,j and knn);scanf(%d,%d,%d,&i,&j,&k);scanf(%d,%d,%d,&i,&j,&k);printf(i=%d,j=%d,k=%dnn,i,j,k);printf(i=%d,j=%d,k=%dnn,i,j,k);sum1=0;sum1=0;loop : if(i=10)loop : if(i=10
20、) sum1=sum1+i sum1=sum1+i* *i; i+; goto loop;i; i+; goto loop; printf(method 1-sum1=%dnn,sum1); printf(method 1-sum1=%dnn,sum1); 3.5 循環(huán)語句第45頁/共139頁第四十五頁,共139頁。 3.5 循環(huán)(xnhun)語句第46頁/共139頁第四十六頁,共139頁。流程特點:流程特點:先判斷先判斷(pndun),后執(zhí)行后執(zhí)行(1)循環(huán)如果包含循環(huán)如果包含一個以上的語句一個以上的語句要用要用 括起來,括起來,見例見例2-3.c(2)循環(huán)體內(nèi)應(yīng)該循環(huán)體內(nèi)應(yīng)該有使循環(huán)體結(jié)束
21、有使循環(huán)體結(jié)束的語句,否則的語句,否則(fuz)進入死循進入死循環(huán)。環(huán)。express語句語句0非03.5 循環(huán)(xnhun)語句第47頁/共139頁第四十七頁,共139頁。1012nnmain()main()方法方法(fngf)(fngf)之二之二 int j,sum2;int j,sum2;sum2=0;sum2=0;while(j=10) /while(j=10) /* * without ; after while() without ; after while() * */ / sum2=sum2+j sum2=sum2+j* *j;j; j+; j+; printf(method
22、2-sum2=%dnn,sum2); printf(method 2-sum2=%dnn,sum2); 3.5 循環(huán)(xnhun)語句第48頁/共139頁第四十八頁,共139頁。不同3.5 循環(huán)(xnhun)語句第49頁/共139頁第四十九頁,共139頁。Dowhile 是先執(zhí)行是先執(zhí)行(zhxng),后判斷,后判斷gotoif及及while均是先判斷后執(zhí)行均是先判斷后執(zhí)行(zhxng)main()main()方法方法(fngf)(fngf)之三之三 int k,sum3;int k,sum3;sum3=0;sum3=0;dodo sum3=sum3+k sum3=sum3+k* *k;k;
23、k+; k+; while(k=10); while(k=10); printf(sum3=%d,sum3);printf(sum3=%d,sum3); Dowhile的的while后面有后面有“;” while( )后面則沒有后面則沒有從本例中可以看出從本例中可以看出while和和dowhile的區(qū)別的區(qū)別dowhile是先執(zhí)行是先執(zhí)行(zhxng)循環(huán)循環(huán)體語句,后判斷表達式體語句,后判斷表達式1012nn3.5 循環(huán)語句第50頁/共139頁第五十頁,共139頁。循環(huán)(xnhun)的嵌套與其它語言與其它語言(yyn)一樣,一樣,c語言語言(yyn)的循環(huán)也可以有多重嵌的循環(huán)也可以有多重嵌套
24、,大家在應(yīng)用過程中可以根據(jù)實際情況選用套,大家在應(yīng)用過程中可以根據(jù)實際情況選用3.5 循環(huán)(xnhun)語句第51頁/共139頁第五十一頁,共139頁。3.5 循環(huán)(xnhun)語句第52頁/共139頁第五十二頁,共139頁。main()main() int sum1=0,sum2=0; int sum1=0,sum2=0;/ /* * - while - - while - * */ / while(sum1=20)while(sum1=20) sum1=sum1+1; sum1=sum1+1; while(sum1%5=0) while(sum1%5=0) printf(while()-
25、sum1=%dn,sum1); printf(while()- sum1=%dn,sum1); sum1+; sum1+; for(sum2=1;sum2=20;sum2+)for(sum2=1;sum2=20;sum2+) while(sum2%5=0) while(sum2%5=0) printf(for printf(for* * * *while()- sum2=%dn,sum2);while()- sum2=%dn,sum2); sum2+; sum2+; 3.5 循環(huán)(xnhun)語句第53頁/共139頁第五十三頁,共139頁。3.5 循環(huán)(xnhun)語句第54頁/共139頁第五
26、十四頁,共139頁。第55頁/共139頁第五十五頁,共139頁。main() /main() /* * y=a y=a* *x2+bx2+b* *x+c x+c * */ / int a,b,c,x,y; int a,b,c,x,y; a=5;b=10;c=15; a=5;b=10;c=15; for(x=1;x=10;x+)for(x=1;x250&y250&y350) break; printf(break-x=%d, y=%dn,x,y); printf(break-x=%d, y=%dn,x,y); for(x=1;x=10;x+)for(x=1;x250&y250&y350) con
27、tinue; printf(continue-x=%d, y=%dn,x,y); printf(continue-x=%d, y=%dn,x,y); Continue結(jié)束本次循環(huán),結(jié)束本次循環(huán),即滿足條件時,就跳過下面的即滿足條件時,就跳過下面的語句語句(yj),進入下一個循環(huán);,進入下一個循環(huán);Break結(jié)束的是結(jié)束的是整個整個(zhngg)循環(huán)循環(huán)第56頁/共139頁第五十六頁,共139頁。for (i=1; i0 y=0 y=-1 y=1 x= =0 3.6 分支(fnzh)語句第62頁/共139頁第六十二頁,共139頁。3.6 分支(fnzh)語句第63頁/共139頁第六十三頁,共13
28、9頁。 是是 否否 是是 否否 x0 y=0 y=-1 y=1 x= =0 提示提示和和輸入整數(shù)輸入整數(shù) x 輸出輸出 y 3.6 分支(fnzh)語句第64頁/共139頁第六十四頁,共139頁。有了上述了解之后有了上述了解之后(zhhu),我們來看解,我們來看解“誰做的好事誰做的好事”的程序框圖的程序框圖fo r (k = 1 ; k = 4 ; k = k + 1 ) 假假 真真 g != 1 su m = = 3 被被 試試 者者 th ism a n = 6 4 + k ; su m = (被被 試試 者者th ism a n != A )+ (被被 試試 者者th ism a n =
29、 = C )+ (被被 試試 者者th ism a n = = D )+ (被被 試試 者者th ism a n != D ); 假假 真真 輸輸 出出 該該 被被 試試 者者 ; 有有 解解 標標 志志g g = = 1 1 ; ; 輸輸 出出 無無 解解 信信 息息 ; 3.6 分支(fnzh)語句第65頁/共139頁第六十五頁,共139頁?,F(xiàn)在現(xiàn)在(xinzi)我們來分析我們來分析“誰做的好事誰做的好事”的的NS流流程圖。它是由兩大塊組成的,如圖程圖。它是由兩大塊組成的,如圖3.8循環(huán)體循環(huán)體for(k=1; kb)?a:b,先運行,先運行(ab)的條件的條件(tiojin)運算運算條件
30、運算符的優(yōu)先級比關(guān)系條件運算符的優(yōu)先級比關(guān)系(gun x)運算符及算術(shù)運算符低,運算符及算術(shù)運算符低, 因此,因此,(ab)的括號可以不要的括號可以不要條件運算符的結(jié)合條件運算符的結(jié)合(jih)方向為方向為“ 自右向左自右向左”, 如:如:ab?a:cd?c:d 等價于等價于 ab?a:(cd?c:d) 若若a=5,b=15,c=25,d=35,那么整個表達式的值為那么整個表達式的值為35條件表達式不能替代一般的條件表達式不能替代一般的if語句語句三個表達式的類型可以不一樣,但最終類型為表達式三個表達式的類型可以不一樣,但最終類型為表達式2和表達式和表達式3中的較高者,中的較高者, 如如x?
31、a : b 3.6 分支語句第78頁/共139頁第七十八頁,共139頁。達式的值不能相 case 常量表達式 n:語句n 同,次序不影響執(zhí)行結(jié)果 default : 語句n+1 可以是多個語句,但不必(bb)用 執(zhí)行順序以case中的常量表達式值為入口標號,由此開始順序執(zhí)行。因此,每個case分支最后應(yīng)該加break語句。3.6 分支(fnzh)語句第79頁/共139頁第七十九頁,共139頁。第80頁/共139頁第八十頁,共139頁。第81頁/共139頁第八十一頁,共139頁。main()main() char a;char a;int b,c;int b,c;printf(1-Please
32、input the salary leveln);printf(1-Please input the salary leveln);printf(Between 1 to 4, which is char typen);printf(Between 1 to 4, which is char typen);scanf(%c,&a);scanf(%c,&a);switch (a)switch (a) case 1 : printf(tax=100%n); break; case 1 : printf(tax=100%n); break; case 2 : printf(tax=50%n); br
33、eak; case 2 : printf(tax=50%n); break; case 3 : printf(tax=30%n); break; case 3 : printf(tax=30%n); break; case 4 : printf(tax=8%n); break; case 4 : printf(tax=8%n); break; default : printf(tax=0%n); break; default : printf(tax=0%n); break; printf(n2-Please input the salary leveln);printf(n2-Please
34、input the salary leveln);printf(Between 1 to 4, which is int typen);printf(Between 1 to 4, which is int typen);3.6 分支(fnzh)語句第82頁/共139頁第八十二頁,共139頁。scanf(%d,&b);scanf(%d,&b);switch (b)switch (b) case 1 : printf(tax=100%n); break; case 1 : printf(tax=100%n); break; case 2 : printf(tax=50%n); break; ca
35、se 2 : printf(tax=50%n); break; case 3 : printf(tax=30%n); break; case 3 : printf(tax=30%n); break; case 4 : printf(tax=8%n); break; case 4 : printf(tax=8%n); break; default : printf(tax=0%n); break; default : printf(tax=0%n); break; printf(nPlease input the salary leveln);printf(nPlease input the s
36、alary leveln);printf(between 1 to 4, which is int typen);3.6 分支(fnzh)語句第83頁/共139頁第八十三頁,共139頁。scanf(%d,&c);scanf(%d,&c);switch (c)switch (c) case 1 : case 1 : case 2 : case 2 : case 3 : printf(tax=30%n); break; case 3 : printf(tax=30%n); break; case 4 : printf(tax=8%n); break; case 4 : printf(tax=8%n
37、); break; default : printf(tax=0%n); break; default : printf(tax=0%n); break; / /* * multi-case 13, share with the case 3 multi-case 13, share with the case 3 * */ / 3.6 分支(fnzh)語句第84頁/共139頁第八十四頁,共139頁。3.7 輸入輸出語句(yj)第85頁/共139頁第八十五頁,共139頁。3.7 輸入輸出語句(yj)第86頁/共139頁第八十六頁,共139頁。n3.7 輸入輸出語句(yj)第87頁/共139頁第
38、八十七頁,共139頁。n)3.7 輸入輸出語句(yj)第88頁/共139頁第八十八頁,共139頁。3.7 輸入輸出語句(yj)第89頁/共139頁第八十九頁,共139頁。3.7 輸入輸出語句(yj)第90頁/共139頁第九十頁,共139頁。同,允許在使用(shyng)scanf函數(shù)之前不必包含stdio.h文件。scanf函數(shù)的一般形式為:n scanf(“格式控制字符串”,輸入項序列); 3.7 輸入輸出語句(yj)第91頁/共139頁第九十一頁,共139頁。n可以使用空格以及逗號(,)等作為間隔符號,則此時輸入數(shù)據(jù)時也要使用間隔符號3.7 輸入輸出語句(yj)第92頁/共139頁第九十二頁
39、,共139頁。3.7 輸入輸出語句(yj)第93頁/共139頁第九十三頁,共139頁。n使用函數(shù)前必須在程序開頭使用以下語句:n #include ngetch與getchar的區(qū)別在于:getch函數(shù)立即接收用戶的輸入,而getchar函數(shù)則在用戶按了后才接收輸入;n3.7 輸入輸出語句(yj)第94頁/共139頁第九十四頁,共139頁。注意格式中只能使用英文單引號。n3.7 輸入輸出語句(yj)第95頁/共139頁第九十五頁,共139頁。3.7 輸入輸出語句(yj)第96頁/共139頁第九十六頁,共139頁。3.8 邏輯(lu j)判斷與解題思路第97頁/共139頁第九十七頁,共139頁。
40、 B A A&B 3.8 邏輯判斷與解題思路第98頁/共139頁第九十八頁,共139頁。1 1 表示表示(biosh)(biosh)真,真,0 0 表示表示(biosh)(biosh)假,假,這是邏輯變量的取值,非真即假這是邏輯變量的取值,非真即假3.8 邏輯判斷與解題(ji t)思路第99頁/共139頁第九十九頁,共139頁。 B A A|B 3.8 邏輯判斷(pndun)與解題思路第100頁/共139頁第一百頁,共139頁。1 1 表示表示(biosh)(biosh)真,真,0 0 表示表示(biosh)(biosh)假假3.8 邏輯判斷與解題(ji t)思路第101頁/共139頁第一百零
41、一頁,共139頁。3.8 邏輯判斷與解題(ji t)思路第102頁/共139頁第一百零二頁,共139頁。3.8 邏輯判斷(pndun)與解題思路第103頁/共139頁第一百零三頁,共139頁。思路思路(sl):3.8 邏輯(lu j)判斷與解題思路第104頁/共139頁第一百零四頁,共139頁。3.8 邏輯(lu j)判斷與解題思路第105頁/共139頁第一百零五頁,共139頁。(!D)這三者之間是或的關(guān)系,因此有CC2 = !( A & D )3.8 邏輯判斷(pndun)與解題思路第106頁/共139頁第一百零六頁,共139頁。3.8 邏輯(lu j)判斷與解題思路第107頁/共139頁第
42、一百零七頁,共139頁。3.8 邏輯(lu j)判斷與解題思路第108頁/共139頁第一百零八頁,共139頁。3.8 邏輯判斷與解題(ji t)思路第109頁/共139頁第一百零九頁,共139頁。3.8 邏輯(lu j)判斷與解題思路第110頁/共139頁第一百一十頁,共139頁。3.8 邏輯(lu j)判斷與解題思路第111頁/共139頁第一百一十一頁,共139頁。3.8 邏輯判斷(pndun)與解題思路第112頁/共139頁第一百一十二頁,共139頁。() ()()()DEDEDEDEDEDEDED EEE DDDECC6=D | !E以上是案情分析以上是案情分析(fnx),已經(jīng)化成了計算
43、機可解的邏輯表達,已經(jīng)化成了計算機可解的邏輯表達式式DDEE3.8 邏輯判斷(pndun)與解題思路第113頁/共139頁第一百一十三頁,共139頁。623.8 邏輯判斷與解題(ji t)思路第114頁/共139頁第一百一十四頁,共139頁。3.8 邏輯判斷與解題(ji t)思路第115頁/共139頁第一百一十五頁,共139頁。coutABCDEF endl; 3.8 邏輯判斷與解題(ji t)思路第116頁/共139頁第一百一十六頁,共139頁。3.8 邏輯(lu j)判斷與解題思路第117頁/共139頁第一百一十七頁,共139頁。3.8 邏輯(lu j)判斷與解題思路第118頁/共139頁
44、第一百一十八頁,共139頁。3.7 邏輯(lu j)判斷與解題思路第119頁/共139頁第一百一十九頁,共139頁。 endl; 3.7 邏輯判斷(pndun)與解題思路第120頁/共139頁第一百二十頁,共139頁。 輸輸 出出 C C 1 + C C 2 + C C 3 + C C 4 + C C 5 + C C 6 = = 6 假假 真真 C C 1 = A |B ; C C 2 = !(A & & D ); C C 3 = (A & & E )|(A & & F ) |(E & & F ); C C 4 = (B & & C )|(!B & & !C ); C C 5 = (C & &
45、 !D )|(D & & !C ); C C 6 =D |(!E ); fo r (F = 0 ; F = 1 ; F =F +1 ) fo r (E = 0 ; E = 1 ; E =E +1 ) fo r (D =0 ; D =1 ; D =D +1 ) fo r (C =0 ; C =1 ; C =C +1 ) fo r (B = 0 ; B = 1 ; B =B +1 ) fo r (A = 0 ; A = 1 ; A = A + 1 ) 3.8 邏輯(lu j)判斷與解題思路第121頁/共139頁第一百二十一頁,共139頁。為了給出每個人是否為罪犯的信息,程序為了給出每個人是否為罪犯
46、的信息,程序(chngx)中定義了一個二維數(shù)組。中定義了一個二維數(shù)組。char info29=“不是罪犯不是罪犯”,“是罪犯是罪犯”;有兩個(lin )字串每串最多有91個英文字符(z f)info為數(shù)組名3.8 邏輯判斷與解題思路第122頁/共139頁第一百二十二頁,共139頁。 char 是說,是說,info 數(shù)組的元素為字符,數(shù)組的元素為字符,2為下標為下標(xi bio),表示有兩個字符串,每個字符串最多有表示有兩個字符串,每個字符串最多有91個字符。個字符。 因為英文字符占一個字節(jié),而漢字占兩個字節(jié),故四個因為英文字符占一個字節(jié),而漢字占兩個字節(jié),故四個漢字要占漢字要占 8 個英文字
47、符的地方。個英文字符的地方。 每一字串后面自動跟一個空字符每一字串后面自動跟一個空字符0 因此可以看出:因此可以看出:第第 0 號字符串號字符串 info0 的內(nèi)容為的內(nèi)容為“不是罪犯不是罪犯”。第第 1 號字符串號字符串 info1 的內(nèi)容為的內(nèi)容為“是罪犯是罪犯”。3.7 邏輯判斷與解題(ji t)思路第123頁/共139頁第一百二十三頁,共139頁。在輸出時用在輸出時用cout “ A: ” infoA endl;cout “ A: ” infoA endl;如果如果A A為為0 0,則輸出,則輸出 A: A:不是不是(b shi)(b shi)罪犯罪犯如果如果A A為為1 1,則輸出,
48、則輸出 A: A:是罪犯是罪犯參考程序參考程序 4_1.cpp 4_1.cpp(案情分析)(案情分析)3.7 邏輯(lu j)判斷與解題思路第124頁/共139頁第一百二十四頁,共139頁。3.7 邏輯判斷與解題(ji t)思路第125頁/共139頁第一百二十五頁,共139頁。3.7 邏輯(lu j)判斷與解題思路第126頁/共139頁第一百二十六頁,共139頁。3.7 邏輯判斷與解題(ji t)思路第127頁/共139頁第一百二十七頁,共139頁。討討 論論第128頁/共139頁第一百二十八頁,共139頁。五位五位(w wi)跳水高手將參加十米高臺跳水決賽,跳水高手將參加十米高臺跳水決賽,有
49、好事者讓五個人據(jù)實力預(yù)測比賽結(jié)果。有好事者讓五個人據(jù)實力預(yù)測比賽結(jié)果。A選手說:選手說:B第二,我第三;第二,我第三;B選手說:我第二,選手說:我第二,E第四;第四;C選手說:我第一,選手說:我第一,D第二;第二;D選手說:選手說:C最后,我第三;最后,我第三; E選手說:我第四,選手說:我第四,A第一第一;決賽成績公布之后,每位選手的預(yù)測都只說對了一決賽成績公布之后,每位選手的預(yù)測都只說對了一半,即一對一錯,請編程解出比賽的實際名次。半,即一對一錯,請編程解出比賽的實際名次。第129頁/共139頁第一百二十九頁,共139頁。1、首先是將五個人的預(yù)測寫成邏輯表達式:、首先是將五個人的預(yù)測寫成邏
50、輯表達式:讓關(guān)系運算符讓關(guān)系運算符 “=” 的含義的含義(hny)是是 “是是”。讓數(shù)字讓數(shù)字 1、2、3、4、5 分別表示名次第一、第二,分別表示名次第一、第二,第五。,第五。 讓整型變量讓整型變量 A、B、C、D、E 分別表示每個選手所得名次。分別表示每個選手所得名次。A選手說:選手說:B=2,A=3;B選手說:選手說:B=2,E=4;C選手說:選手說:C=1,D=2;D選手說:選手說:C=5,D=3;E選手說:選手說:E=4,A=1;第130頁/共139頁第一百三十頁,共139頁。2、考慮、考慮(kol)到每個人說的話是一對一錯,到每個人說的話是一對一錯,即一真一假,比如即一真一假,比如
51、A說的說的 (B=2)+(A=3) 應(yīng)該是應(yīng)該是 1 1 + 0 = 1 0 + 1 = 1 第131頁/共139頁第一百三十一頁,共139頁。我們可以歸納出要同時滿足(mnz)五個人所說的話都符合一半對一半錯的條件是 ta= (B=2)+(A=3)=1; 符合A選手的話tb= (B=2)+(E=4)=1; 符合B選手的話tc= (C=1)+(D=2)=1; 符合C選手的話td= (C=5)+(D=3)=1; 符合D選手的話te = (E=4)+(A=1)=1; 符合E選手的話因為ta,tb,te非1即0,五個條件值都加在一起05tatbtctdte第132頁/共139頁第一百三十二頁,共13
52、9頁。第133頁/共139頁第一百三十三頁,共139頁。3、只有等于、只有等于5 時才都符合每個人所說的話,這僅只是符合時才都符合每個人所說的話,這僅只是符合題意的一個題意的一個(y )必要條件,同時還得考慮必要條件,同時還得考慮 A、B、C、D、E 的取值不得有相同者的取值不得有相同者,1, 2, 3, 4, 5A B CDEABCDE且可以可以(ky)考慮考慮*120A B CDE 是一個是一個(y )條件條件第134頁/共139頁第一百三十四頁,共139頁。4、仍然可以用枚舉的方法,讓變量、仍然可以用枚舉的方法,讓變量A、B、C、D、E 在在 15 中取值,形成滿足上述條件的中取值,形成
53、滿足上述條件的 AE 的的組合組合(zh),即是所求。這時可用循環(huán)結(jié)構(gòu),如,即是所求。這時可用循環(huán)結(jié)構(gòu),如下所示下所示第135頁/共139頁第一百三十五頁,共139頁。 輸輸 出出 A A, ,B B, ,C C, ,D D, ,E E t=5 假假 真真 ta=(B =2)+(A =3)=1; tb=(B =2)+(E =4)=1; tc=(C =1)+(D =2)=1; td=(C =5)+(D =3)=1; te=(E =4)+(A =1)=1; t=ta+tb+tc+td+te; 假假 真真 A *B *C *D *E =120 E =15-(A +B +C +D ); f fo or
54、 r( (D D= =1 1; ;D D = =5 5; ;D D= =D D+ +1 1) ) f fo or r( (C C= =1 1; ;C C = =5 5; ;C C= =C C+ +1 1) ) f fo or r( (B B= =1 1; ;B B = =5 5; ;B B= =B B+ +1 1) ) f fo or r( (A A= =1 1; ;A A = =5 5; ;A A= =A A+ +1 1) ) 第136頁/共139頁第一百三十六頁,共139頁。第137頁/共139頁第一百三十七頁,共139頁。第138頁/共139頁第一百三十八頁,共139頁。感謝您的觀看感謝您的觀看(gunkn)!第139頁/共139頁第一百三十九頁,共139頁。
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。