版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課前思考題即白非黑上面的說法正確嗎?課前思考題即白非黑上面的說法正確嗎?世界首臺(tái)擬態(tài)計(jì)算機(jī)據(jù)新華社上海9月21日電(記者張建松)我國科學(xué)家融合仿生學(xué)、認(rèn)知科學(xué)和現(xiàn)代信息技術(shù),提出擬態(tài)計(jì)算新理論,并成功研制出世界首臺(tái)結(jié)構(gòu)動(dòng)態(tài)可變的擬態(tài)計(jì)算機(jī)。21日,這項(xiàng)名為“新概念高效能計(jì)算機(jī)體系結(jié)構(gòu)及系統(tǒng)研究開發(fā)”項(xiàng)目,在上海通過了國家863計(jì)劃項(xiàng)目驗(yàn)收專家組的驗(yàn)收。測試表明,擬態(tài)計(jì)算機(jī)典型應(yīng)用的能效,比一般計(jì)算機(jī)可提升十幾倍到上百倍,高效能特點(diǎn)顯著。擬態(tài)計(jì)算機(jī)堪稱“變形金剛”。目前所用一般的計(jì)算機(jī)“結(jié)構(gòu)固定不變、靠軟件編程計(jì)算”,而擬態(tài)計(jì)算機(jī)的結(jié)構(gòu)動(dòng)態(tài)可變,“靠變結(jié)構(gòu)、軟硬件結(jié)合計(jì)算”。針對(duì)用戶不同的應(yīng)用需
2、求,擬態(tài)計(jì)算機(jī)可通過改變自身結(jié)構(gòu)提高效能。 世界首臺(tái)擬態(tài)計(jì)算機(jī)3第4章 邏輯思維與計(jì)算機(jī)解題34將實(shí)際問題抽象為邏輯關(guān)系枚舉法解題思路關(guān)系與關(guān)系表達(dá)式程序的循環(huán)結(jié)構(gòu)與分支結(jié)構(gòu)學(xué) 習(xí) 目 標(biāo)4將實(shí)際問題抽象為邏輯關(guān)系學(xué) 習(xí) 目 標(biāo)5 計(jì)算機(jī)強(qiáng)大的邏輯分析功能是由人通過程序賦給它的。一些邏輯問題必須轉(zhuǎn)換成計(jì)算機(jī)能夠看得懂的數(shù)學(xué)表達(dá)式和一定的程序指令。這一章我們通過例子來介紹如何將人對(duì)問題的思考轉(zhuǎn)換為讓計(jì)算機(jī)能解的數(shù)學(xué)表達(dá)式,同時(shí)給出一些通常要用到的程序結(jié)構(gòu)和C/C+語句。5 計(jì)算機(jī)強(qiáng)大的邏輯分析功能是由人通過程序賦6清華附中有四位同學(xué)中的一位做了好事,不留名,表揚(yáng)信來了之后,校長問這四位是誰做的好
3、事。A說:不是我。B說:是C。C說:是D。D說:他胡說。已知三個(gè)人說的是真話,一個(gè)人說的是假話。現(xiàn)在要根據(jù)這些信息,找出做了好事的人?!救蝿?wù) 4.1】 “誰做的好事”6清華附中有四位同學(xué)中的一位做了好事,不留名,表揚(yáng)信來了之7關(guān)系運(yùn)算符有如下6個(gè) =大于等于 大于 =等于 =小于等于 小于 !=不等于4.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式為了講解關(guān)系運(yùn)算符和關(guān)系表達(dá)式,先請(qǐng)你在機(jī)器上建立和運(yùn)行下列程序。7關(guān)系運(yùn)算符有如下6個(gè)4.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式為8 為了解這道題,我們需要學(xué)習(xí)如何通過邏輯思維與判斷解這類問題的思路。8 為了解這道題,我們需要學(xué)習(xí)如何通過邏輯思維與判斷9/ */ * 程 序:
4、3_0.cpp */ * 功 能: 為講解關(guān)系運(yùn)算而編 */ * 編制人: wuwh */ * 時(shí) 間: 2001年6月27日 */ *9/ *10 #include using namespace std; 要計(jì)算的內(nèi)容 int main( ) cout 2 的邏輯值是” 2) “, 1為真?!眅ndl ;cout= 2 的邏輯值是”=2) “, 1為真。”endl ;cout“3 = 2 的邏輯值是” (3=2) “, 0為假。”endl ;cout“3 2 的邏輯值是” (32) “, 0為假。”endl ;cout“3 = 2 的邏輯值是” (3=2) “, 0為假。”endl ;co
5、ut“3 != 2 的邏輯值是” (3!=2) “ , 1為真?!眅ndl ; return 0 ; 10 #include 11程序運(yùn)行結(jié)果是: 計(jì)算出來的3 2 的邏輯值是 1 , 1為真。3 = 2 的邏輯值是 1 , 1為真。3 = 2 的邏輯值是 0 , 0為假。3 2 的邏輯值是 0 , 0為假。3 = 2 的邏輯值是 0 , 0為假。3 != 2 的邏輯值是 1 , 1為真。11程序運(yùn)行結(jié)果是: 計(jì)算出來的12 關(guān)系表達(dá)式的一般格式 關(guān)系運(yùn)算符 例如:表達(dá)式b c 在程序中系統(tǒng)要測試由關(guān)系表達(dá)式所表示的關(guān)系是否成立,成立為真,不成立為假。 關(guān)系表達(dá)式是有值的,這個(gè)值非 0 即 1
6、,是布爾值。關(guān)系表達(dá)式成立時(shí),其值為 1 ;關(guān)系表達(dá)式不成立時(shí),其值為 0 。12 關(guān)系表達(dá)式的一般格式13 結(jié)合任務(wù)4.1,可以將四個(gè)人說的四句話寫成關(guān)系表達(dá)式。 在定義變量時(shí),讓 thisman 表示要尋找的做了好事的人,定義它是字符變量。 char thisman = ; / 定義字符變量并初始化為空 “=” 的含義為 “ 是 ” , “!= ” 的含義為 “ 不是”。使用關(guān)系表達(dá)式解決問題13 結(jié)合任務(wù)4.1,可以將四個(gè)人說的四14利用關(guān)系表達(dá)式將四個(gè)人所說的話表示成說話人說的話寫成關(guān)系表達(dá)式A“不是我”thisman!=AB“是C”thisman=CC“是D”thisman=DD“他
7、胡說”thisman!=D14利用關(guān)系表達(dá)式將四個(gè)人所說的話表示成說話人說的話寫成關(guān)系15在C/C+中字符在存儲(chǔ)單元中是以ASCII碼的形式存放的。因此,用賦值語句thisman = A; 與thisman = 65;兩者是等效的,在以thisman為標(biāo)識(shí)的存儲(chǔ)單元中存的是數(shù)字65。建議你用如下實(shí)驗(yàn)加以驗(yàn)證。thisman 65地址xxxx15在C/C+中字符在存儲(chǔ)單元中是以ASCII碼的形式16/ */ * 程 序: 3_1.cpp */ * 功 能: 驗(yàn)證A和65是否相等 */ * 編制人: wuwh */ * 時(shí) 間: 2001年6月27日 */ *#include / 預(yù)編譯命令usi
8、ng namespace std;int main( )/ 主函數(shù)/ 主函數(shù)開始char thisman;/ 聲明字符變量thisman,thisman = A;/ thisman賦值為A/ 輸出關(guān)系表達(dá)式“65=A”的值cout 65=A 關(guān)系表達(dá)式的值為 (65=A) , 1為真。 endl; return 0;計(jì)算/ 主函數(shù)結(jié)束16/ *17 結(jié)合任務(wù)4.1分析,A、B、C、D四個(gè)人,只有一位是做好事者。令做好事者為1,未做好事者為0,可以有如下 4 種狀態(tài)(情況)4.2 枚舉法的思路狀態(tài)ABCD1100020100300104000117 結(jié)合任務(wù)4.1分析,A、B、C、D四個(gè)18這四
9、種狀態(tài)可簡化寫成狀態(tài)賦值表達(dá)式1thisman=A2thisman=B3thisman=C4thisman=D 顯然第一種狀態(tài)是假定A是做好事者,第二種狀態(tài)是假定B是做好事者,。所謂枚舉是按照四種假定逐一地去測試四個(gè)人的話有幾句是真話,如果不滿足三句為真,就否定掉這一假定,換下一個(gè)狀態(tài)再試。 具體做法如下:18這四種狀態(tài)可簡化寫成狀態(tài)賦值表達(dá)式1thisman=A19(1)假定讓 thisman = A 代入四句話中說話人說的話關(guān)系表達(dá)式真嗎Athisman!=A;A!=A0Bthisman=C;A=C0Cthisman=D;A=D0Dthisman!=D;A!=D1四個(gè)關(guān)系表達(dá)式的值的和為1
10、,顯然不是A做的好事19(1)假定讓 thisman = A 代入四句話中說20(2)假定讓 thisman = B 代入四句話中說話人說的話關(guān)系表達(dá)式真嗎Athisman!=A;B!=A1Bthisman=C;B=C0Cthisman=D;B=D0Dthisman!=D;B!=D1四個(gè)關(guān)系表達(dá)式的值的和為2,顯然不是B做的好事20(2)假定讓 thisman = B 代入四句話中說21(3)假定讓 thisman = C 代入四句話中說話人說的話關(guān)系表達(dá)式真嗎Athisman!=A;C!=A1Bthisman=C;C=C1Cthisman=D;C=D0Dthisman!=D;C!=D1四個(gè)關(guān)
11、系表達(dá)式的值的和為3,就是C做的好事21(3)假定讓 thisman = C 代入四句話中說22綜上所述一個(gè)人一個(gè)人去試,就是枚舉。 從編寫程序看,實(shí)現(xiàn)枚舉最好用 循環(huán)結(jié)構(gòu)。22綜上所述一個(gè)人一個(gè)人去試,就是枚舉。23for (int k=0; k4; k+) / 計(jì)數(shù)型循環(huán),循環(huán)的控制變量為k / 循環(huán)體開始thisman = A+k; / 產(chǎn)生被試者,依次為A,B,C,D / 賦值給thismansum = ( thisman!=A ) / 測試A的話是否為真 +( thisman=C ) / 測試B的話是否為真 +( thisman=D ) / 測試C的話是否為真 +( thisman
12、!=D ) ; / 測試D的話是否為真 / 循環(huán)體結(jié)束23for (int k=0; k4; k+) 24for是計(jì)數(shù)型循環(huán)的標(biāo)識(shí)符,圓括號(hào)括起的是三個(gè)表達(dá)式。其下的大括號(hào)括起的部分是循環(huán)體。圖 4.1 描述了 for 循環(huán)的結(jié)構(gòu)。for語句的格式為for ( 表達(dá)式1;表達(dá)式2;表達(dá)式3 )循環(huán)體(語句組);4.3 循環(huán)結(jié)構(gòu)24for是計(jì)數(shù)型循環(huán)的標(biāo)識(shí)符,圓括號(hào)括起的是三個(gè)表達(dá)式25圖 4.125圖 4.126求解表達(dá)式1,置循環(huán)控制變量的初值測試表達(dá)式2,測試是否未到循環(huán)控制變量的終值 2-1 如果表達(dá)式2的值為真,則執(zhí)行3 2-2 如果表達(dá)式2的值為假,則退出循環(huán)轉(zhuǎn)5執(zhí)行循環(huán)體語句組,
13、之后轉(zhuǎn)44. 求解表達(dá)式3,讓循環(huán)控制變量增值或減值,再轉(zhuǎn)25. 執(zhí)行for語句的下一條語句for循環(huán)的執(zhí)行過程如下:26求解表達(dá)式1,置循環(huán)控制變量的初值for循環(huán)的執(zhí)行過程如27/ */ * 程 序: 4._2.cpp(計(jì)數(shù)循環(huán)示例) */ * 功 能: 求自然數(shù)1100之和 */ * 編制人: wuwh */ * 時(shí) 間: 2001年9月10日 */ * #include / 預(yù)編譯命令 using namespace std; int main( ) / 主函數(shù) / 主函數(shù)開始int sum=0; / 聲明sum為整型變量并初始化為0for (int i=0; i100; i+) /
14、for 循環(huán) / 循環(huán)體開始sum = sum+(i+1) ; / 累加求和 / 循環(huán)體結(jié)束cout自然數(shù)1100之和為 sum endl; / 輸出累加結(jié)果 return 0 ; / 主函數(shù)結(jié)束課堂練習(xí)27/ *28 為了解決例 4-1中的問題,還需要用到分支語句,即需要判斷當(dāng)四句話中有 3 句為真時(shí),我們要將該人判定為做好事者。 請(qǐng)看如下程序段:4.4 分支結(jié)構(gòu)28 為了解決例 4-1中的問題,還需要用到29if (sum = 3) /如果sum真的 等于3 時(shí), 做cout This man is A+k 0) y=1; / 如果x0,將1賦給 yelse / 否則if (x=0) /
15、如果x=0,將 0 賦給 y y=0; else y=-1; / 否則(x0) y=1; / 如果x34能不能將圖改一下呢?用 3 條 if 語句 t x0 f y=1; t x=0 f y=0 ; t x0 ) y=1; /如果x大于0, y賦值為1 if ( x=0 ) y=0; /如果x等于0, y賦值為0 if ( x0 ) y= -1; /如果x小于0, y賦值為-135 36/*/* 程 序 名:4_4.cpp(分支程序示例) */* 作 者:wuwh */* 編制時(shí)間:2001年8月 */* 主要功能:實(shí)現(xiàn)符號(hào)函數(shù) */*36/*37 #include / 預(yù)編譯命令 using
16、 namespace std ; int main()/ 主函數(shù) / 主函數(shù)開始float x=0.0 , y=0.0 ;/ 聲明x,y為浮點(diǎn)型變量,并初始化為0cout 請(qǐng)輸入x x ; / 從鍵盤輸入實(shí)數(shù)送至 x 中if (x0) / 如果x0,將1賦給 y y=1; elseif (x=0) / 如果x=0,將 0 賦給 y y=0; else y=-1; / 否則(x0),將 -1賦給 ycout 當(dāng)x= x 時(shí), y= y endl; / 輸出x,y的值 return 0 ; /主函數(shù)結(jié)束3738NS圖有了上述了解之后,我們來看解“誰做的好事”的程序框圖圖 4.738NS圖有了上述了
17、解之后,我們來看解“誰做的好事”的程序框39現(xiàn)在我們來分析“誰做的好事”的NS流程圖。它是由兩大塊組成的,如圖4.8循環(huán)體for(k=0; k4; k+)語句1;圖 4.8第一塊循環(huán)結(jié)構(gòu)第二塊分支結(jié)構(gòu)39現(xiàn)在我們來分析“誰做的好事”的NS流程圖。它是由兩大塊組40 第一塊是循環(huán)結(jié)構(gòu),功能是產(chǎn)生被試對(duì)象,依次為A、B、C、D。并測試四句話有多少句為真,如有3句為真,則可確定做好事者,同時(shí)置有解標(biāo)志為1。 第二塊為分支結(jié)構(gòu),功能是判斷是否無解,如為真,則輸出無解信息。 這是粗看。再往細(xì)看,第一塊的循環(huán)體又由兩塊組成,如圖4.9,中含兩條賦值語句中含一條分支語句40 第一塊是循環(huán)結(jié)構(gòu),功能是產(chǎn)生被試
18、對(duì)象,41希望大家掌握NS圖,這對(duì)今后的學(xué)習(xí)會(huì)有好處。按照程序框圖很容易寫出程序(如下頁所示)thisman = A+k;sum=( thisman!=A )+ ( thisman=C )+ ( thisman=D )+ ( thisman!=D );圖 4.9sum = 3真假輸出該被測試者;有解標(biāo)志置1;41希望大家掌握NS圖,這對(duì)今后的學(xué)習(xí)會(huì)有好處。按照程序框42/ */ * 程 序 名:4_5.cpp */ * 作 者:wuwh */ * 編制時(shí)間:2001年8月 */ * 主要功能:誰做的好事 */ *42/ *43#include / 預(yù)編譯命令using namespace st
19、d ;int main() / 主函數(shù) / 主函數(shù)開始int g=0 ; / 整型變量,初始化為0,表示“無解”for(int k=0;k4;k=k+1 ) / k是循環(huán)控制變量 / for 循環(huán)體開始char thisman = A+k;int sum = ( thisman!=A )+ ( thisman=C ) + ( thisman=D ) + ( thisman!=D );if (sum=3) / 如果3句話為真,則輸出該人 cout 做好事者為 char(A+k) endl; g=1; / 有解標(biāo)志置1,表示找到解了 / for 循環(huán)體結(jié)束if (g!=1) cout Cant f
20、ound! endl; / 輸出無解信息 return 0 ; 43#include 444445換個(gè)思路 數(shù)字 0 表示 A 0 A 數(shù)字 1 表示 B 1 B 數(shù)字 2 表示 C 2 C 數(shù)字 3 表示 D 3 D 讓 K 表示要找的人,K從0到3,表示從A 找到D,這時(shí) A說:不是我; 可形式化為 K !=0; B說:是C ; 可形式化為 K=2; C說:是D; 可形式化為 K=3; D說:他胡說; 可形式化為 K!=3;45換個(gè)思路46/ */ * 程 序 名:3_6.cpp */ * 作 者:wuwh */ * 編制時(shí)間:2001年8月 */ * 主要功能:誰做的好事 */ *#in
21、clude / 預(yù)編譯命令void main()/ 主函數(shù) / 主函數(shù)開始int g=0; / 聲明變量為整數(shù)類型,初始化為0for(int k=0; k4; k+) / 循環(huán)從k為0到3,int sum=0; / 用sum累計(jì)真話數(shù)if (k!=0) sum=sum+1; / 如A的話為真,則讓sum加1;if (k=2) sum=sum+1; / 如B的話為真,則讓sum加1;if (k=3) sum=sum+1; / 如C的話為真,則讓sum加1;if (k!=3) sum=sum+1; / 如D的話為真,則讓sum加1;if (sum=3)/ 若有三句話為真,則做下列兩件事 cout
22、This man is char(A+k) endl; / 輸出做好事者 g=1;/ 讓有解標(biāo)志置1if (g!=1)/ 則輸出無解信息 cout Cant found! endl;/ 主函數(shù)結(jié)束46/ *47for ( int k = 0; k 4; k+ )int sum=0;if ( k != 0 ) sum = sum+1; / 如A的話為真, 則讓sum加1;if ( k =2 ) sum = sum+1; / 如B的話為真,則讓sum加1;if ( k =3 ) sum = sum+1; / 如C的話為真,則讓sum加1;if ( k != 3 ) sum = sum+1; / 如D的話為真,則讓sum加1; . . .47for ( i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 影樓財(cái)務(wù)制度
- 海瀾之家財(cái)務(wù)制度
- 地產(chǎn)中介公司財(cái)務(wù)制度
- 創(chuàng)新層集合競價(jià)交易制度
- 公司印鑑登記制度
- 木門翻新-施工方案(3篇)
- 外招牌施工方案(3篇)
- 測量組織施工方案(3篇)
- 南京團(tuán)日活動(dòng)策劃方案(3篇)
- 教職工績效考核結(jié)果制度
- 攝影家協(xié)會(huì)作品評(píng)選打分細(xì)則
- 電子產(chǎn)品三維建模設(shè)計(jì)細(xì)則
- 2025年中國道路交通毫米波雷達(dá)市場研究報(bào)告
- 設(shè)計(jì)交付:10kV及以下配網(wǎng)工程的標(biāo)準(zhǔn)與實(shí)踐
- 大學(xué)高數(shù)基礎(chǔ)講解課件
- hop安全培訓(xùn)課件
- 固井質(zhì)量監(jiān)督制度
- 中華人民共和國職業(yè)分類大典是(專業(yè)職業(yè)分類明細(xì))
- 2025年中考英語復(fù)習(xí)必背1600課標(biāo)詞匯(30天記背)
- 資產(chǎn)管理部2025年工作總結(jié)與2025年工作計(jì)劃
- 科技成果轉(zhuǎn)化技術(shù)平臺(tái)
評(píng)論
0/150
提交評(píng)論