本書設(shè)計(jì)了18個實(shí)驗(yàn), 包括計(jì)算機(jī)常用操作、Python編程、信息表示、數(shù)據(jù)壓縮、棧的應(yīng)用、隊(duì)列的應(yīng)用、二叉樹的遍歷、二分查找、快速排序、遞歸、分治法、數(shù)據(jù)庫操作、檢錯、加解密等。
本書是國家精品課程“大學(xué)計(jì)算機(jī)基礎(chǔ)”的主講教材和“高等教育*教學(xué)成果獎”配套教材,為普通高等教育“十一五”*規(guī)劃教材并獲全國高校出版社*暢銷書獎。
本書是趙英良主編的《大學(xué)計(jì)算機(jī)基礎(chǔ)(第5版)》(清華大學(xué)出版社,2017)的配套實(shí)驗(yàn)指導(dǎo)書,可作為高校理工科專業(yè)*門計(jì)算機(jī)課程的實(shí)驗(yàn)教材。本書設(shè)計(jì)了18個實(shí)驗(yàn),包括計(jì)算機(jī)常用操作、Python編程、信息表示、數(shù)據(jù)壓縮、棧的應(yīng)用、隊(duì)列的應(yīng)用、二叉樹的遍歷、二分查找、快速排序、遞歸、分治法、數(shù)據(jù)庫操作、檢錯、加解密等。
本書與主教材同步,操作步驟詳細(xì),涉及的應(yīng)用問題貼近生活,實(shí)用、有趣,幫助讀者在輕松快樂的氛圍中掌握操作技能,加深理論理解。
本書是趙英良等編寫的《大學(xué)計(jì)算機(jī)基礎(chǔ)(第5版)》(清華大學(xué)出版社,2017)的配套實(shí)驗(yàn)指導(dǎo)書。
本書設(shè)計(jì)了18個實(shí)驗(yàn),它們是:
實(shí)驗(yàn)1計(jì)算機(jī)常用操作實(shí)驗(yàn)10二叉樹的遍歷
實(shí)驗(yàn)2Python使用基礎(chǔ)實(shí)驗(yàn)11排序和查找
實(shí)驗(yàn)3Python的列表實(shí)驗(yàn)12遞歸
實(shí)驗(yàn)4Python的列表字符串和函數(shù)實(shí)驗(yàn)13算法實(shí)驗(yàn)
實(shí)驗(yàn)5數(shù)據(jù)的簡單變換實(shí)驗(yàn)14自主實(shí)驗(yàn)
實(shí)驗(yàn)6數(shù)制的轉(zhuǎn)換(1)實(shí)驗(yàn)15數(shù)據(jù)庫基礎(chǔ)操作
實(shí)驗(yàn)7數(shù)制的轉(zhuǎn)換(2)實(shí)驗(yàn)16數(shù)據(jù)查詢
實(shí)驗(yàn)8Huffman編碼和Zip壓縮實(shí)驗(yàn)17檢錯
實(shí)驗(yàn)9棧和隊(duì)列的應(yīng)用實(shí)驗(yàn)18加密和解密
每個實(shí)驗(yàn)體例包括實(shí)驗(yàn)?zāi)康、?shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)指導(dǎo)和實(shí)驗(yàn)報(bào)告要求,特別是每個實(shí)驗(yàn)還有一個小結(jié),總結(jié)實(shí)驗(yàn)內(nèi)容、要掌握的關(guān)鍵技術(shù)、要理解的主要概念等,讓學(xué)生知道這個實(shí)驗(yàn)“到底是干什么的”。
本書是在“大學(xué)計(jì)算機(jī)基礎(chǔ)”課程多年實(shí)驗(yàn)教學(xué)的基礎(chǔ)上編寫的,具有如下特點(diǎn):
(1)內(nèi)容與教材同步
針對教材中要求學(xué)生掌握的重點(diǎn)、難點(diǎn)和要點(diǎn)設(shè)計(jì)實(shí)驗(yàn),其中實(shí)驗(yàn)2~4涉及主教材第2章的內(nèi)容;實(shí)驗(yàn)5~8涉及主教材第3章的內(nèi)容,實(shí)驗(yàn)9~10涉及主教材第4章的內(nèi)容,實(shí)驗(yàn)11~14涉及主教材第5章的內(nèi)容,實(shí)驗(yàn)15~16涉及主教材第6章的內(nèi)容,實(shí)驗(yàn)17~18涉及主教材第7章的內(nèi)容。
(2)操作步驟針對性強(qiáng)
每章的實(shí)驗(yàn)指導(dǎo)都是根據(jù)學(xué)生實(shí)驗(yàn)中的問題編寫的。如實(shí)驗(yàn)1,其內(nèi)容是剛上大學(xué)的學(xué)生經(jīng)常遇到的問題,目的是為以后的學(xué)習(xí)掃清障礙。
(3)問題實(shí)用有趣
實(shí)驗(yàn)涉及的應(yīng)用問題大多貼近生活,實(shí)用、有趣,如數(shù)制轉(zhuǎn)換、數(shù)據(jù)壓縮、快速排序、小詞典、漢語塔問題求解、科赫曲線、解不定方程、最優(yōu)裝載、書號校驗(yàn)和加解密系統(tǒng)等。
本書由趙英良主編,賈應(yīng)智、夏秦和仇國巍老師參加編寫,編寫過程中衛(wèi)顏俊、喬亞男等老師也提出了許多寶貴意見,在此表示感謝。
由于編者水平有限,書中會有很多不足之處,懇請專家、同行和同學(xué)們批評指正。
編者
2017年6月于西安
第1章實(shí)驗(yàn)1計(jì)算機(jī)常用操作1
1.1實(shí)驗(yàn)?zāi)康?
1.2實(shí)驗(yàn)內(nèi)容1
1.3實(shí)驗(yàn)步驟1
第2章實(shí)驗(yàn)2Python使用基礎(chǔ)13
2.1實(shí)驗(yàn)?zāi)康?3
2.2實(shí)驗(yàn)內(nèi)容13
2.3實(shí)驗(yàn)指導(dǎo)14
2.4實(shí)驗(yàn)結(jié)果17
2.5程序運(yùn)行結(jié)果截圖方法18
2.6小結(jié) 18
第3章實(shí)驗(yàn)3Python的列表19
3.1實(shí)驗(yàn)?zāi)康?9
3.2實(shí)驗(yàn)內(nèi)容19
3.3實(shí)驗(yàn)指導(dǎo)20
3.4實(shí)驗(yàn)結(jié)果21
3.5小結(jié)21
第4章實(shí)驗(yàn)4Python的列表、字符串和函數(shù)22
4.1實(shí)驗(yàn)?zāi)康?2
4.2實(shí)驗(yàn)內(nèi)容22
4.3實(shí)驗(yàn)指導(dǎo)23
4.4實(shí)驗(yàn)結(jié)果24
4.5小結(jié)24
第5章實(shí)驗(yàn)5數(shù)據(jù)的簡單變換25
5.1實(shí)驗(yàn)?zāi)康?5
5.2實(shí)驗(yàn)內(nèi)容25
5.3實(shí)驗(yàn)指導(dǎo)26
5.4實(shí)驗(yàn)結(jié)果27
5.5小結(jié)27第6章實(shí)驗(yàn)6數(shù)制的轉(zhuǎn)換(1)28
6.1實(shí)驗(yàn)?zāi)康?8
6.2實(shí)驗(yàn)內(nèi)容28
6.3實(shí)驗(yàn)指導(dǎo)29
6.4實(shí)驗(yàn)結(jié)果30
6.5小結(jié)30
第7章實(shí)驗(yàn)7數(shù)制的轉(zhuǎn)換(2)31
7.1實(shí)驗(yàn)?zāi)康?1
7.2實(shí)驗(yàn)內(nèi)容31
7.3實(shí)驗(yàn)指導(dǎo)32
7.4小結(jié)33
第8章實(shí)驗(yàn)8Huffman編碼和Zip壓縮34
8.1實(shí)驗(yàn)?zāi)康?4
8.2實(shí)驗(yàn)內(nèi)容34
8.3實(shí)驗(yàn)指導(dǎo)35
8.4實(shí)驗(yàn)練習(xí)39
8.5小結(jié)40
第9章實(shí)驗(yàn)9棧和隊(duì)列的應(yīng)用41
9.1實(shí)驗(yàn)?zāi)康?1
9.2實(shí)驗(yàn)內(nèi)容41
9.3實(shí)驗(yàn)指導(dǎo)43
9.4小結(jié)44
第10章實(shí)驗(yàn)10二叉樹的遍歷45
10.1實(shí)驗(yàn)?zāi)康?5
10.2實(shí)驗(yàn)內(nèi)容45
10.3實(shí)驗(yàn)指導(dǎo)47
10.4小結(jié)47
第11章實(shí)驗(yàn)11排序和查找48
11.1實(shí)驗(yàn)?zāi)康?8
11.2實(shí)驗(yàn)內(nèi)容48
11.3實(shí)驗(yàn)指導(dǎo)49
11.4小結(jié)50
第12章實(shí)驗(yàn)12遞歸51
12.1實(shí)驗(yàn)?zāi)康?1
12.2實(shí)驗(yàn)內(nèi)容51
12.3實(shí)驗(yàn)指導(dǎo)54
12.4小結(jié)56
第13章實(shí)驗(yàn)13算法實(shí)驗(yàn)58
13.1實(shí)驗(yàn)?zāi)康?8
13.2實(shí)驗(yàn)內(nèi)容58
13.3實(shí)驗(yàn)指導(dǎo)60
13.4實(shí)驗(yàn)報(bào)告要求65
13.5小結(jié)65
第14章實(shí)驗(yàn)14自主實(shí)驗(yàn)66
14.1實(shí)驗(yàn)?zāi)康?6
14.2實(shí)驗(yàn)內(nèi)容66
14.3實(shí)驗(yàn)指導(dǎo)66
14.4評分依據(jù)66
14.5實(shí)驗(yàn)報(bào)告要求67
第15章實(shí)驗(yàn)15數(shù)據(jù)庫基本操作68
15.1實(shí)驗(yàn)?zāi)康?8
15.2實(shí)驗(yàn)環(huán)境68
15.3實(shí)驗(yàn)內(nèi)容68
15.4實(shí)驗(yàn)指導(dǎo)69
15.5實(shí)驗(yàn)要求72
15.6小結(jié)72
第16章實(shí)驗(yàn)16數(shù)據(jù)查詢73
16.1實(shí)驗(yàn)?zāi)康?3
16.2實(shí)驗(yàn)環(huán)境73
16.3實(shí)驗(yàn)內(nèi)容73
16.4實(shí)驗(yàn)指導(dǎo)74
16.5實(shí)驗(yàn)要求77
16.6小結(jié)77
第17章實(shí)驗(yàn)17檢錯78
17.1實(shí)驗(yàn)?zāi)康?8
17.2實(shí)驗(yàn)內(nèi)容78
17.3實(shí)驗(yàn)原理78
17.4實(shí)驗(yàn)指導(dǎo)79
17.5小結(jié)80
第18章實(shí)驗(yàn)18加密和解密81
18.1實(shí)驗(yàn)?zāi)康?1
18.2實(shí)驗(yàn)內(nèi)容81
18.3實(shí)驗(yàn)指導(dǎo)83
18.4小結(jié)85
附錄AASCII字符表86
附錄BPython常用內(nèi)置函數(shù)89
附錄CSQLite使用簡介91
第5章實(shí)驗(yàn)5數(shù)據(jù)的簡單變換
5.1實(shí)驗(yàn)?zāi)康?
(1) 學(xué)習(xí)獲取實(shí)數(shù)整數(shù)部分和小數(shù)部分的方法。
(2) 學(xué)習(xí)十六進(jìn)制數(shù)的標(biāo)記方法。
(3) 學(xué)習(xí)數(shù)據(jù)的基本變換的方法。
(4) 復(fù)習(xí)列表、函數(shù)的使用方法。
5.2實(shí)驗(yàn)內(nèi)容〖*4/5〗1. 求實(shí)數(shù)的整數(shù)部分和小數(shù)部分編寫程序,求實(shí)數(shù)的整數(shù)部分和小數(shù)部分。例如:
輸入: 15.83
輸出:
整數(shù)部分15
小數(shù)部分0.83
2. 一位十六進(jìn)制數(shù)的轉(zhuǎn)換
編寫函數(shù),將\[0,15\]之間的整數(shù),轉(zhuǎn)換為0~F的十六進(jìn)制符號。例如:
輸入:9
輸出: 9
輸入: 10
輸出: A
轉(zhuǎn)換規(guī)則:
0~9分別轉(zhuǎn)為0~9
10~15,分別轉(zhuǎn)為A ~F
要求: 程序要能接受連續(xù)的輸入,即每輸入一個數(shù),就顯示結(jié)果,然后繼續(xù)等待用戶輸入,直到用戶輸入-1,程序結(jié)束。3. 將列表中的數(shù)轉(zhuǎn)換為一位十六進(jìn)制數(shù)
編寫函數(shù),將由0~15的整數(shù)組成的列表轉(zhuǎn)換為0~9,A~F組成的新列表。編寫主函數(shù),輸入由0~15的整數(shù)組成的列表,調(diào)用函數(shù)進(jìn)行轉(zhuǎn)換,將返回結(jié)果顯示出來。
輸入: 元素個數(shù)n和n個0~15的整數(shù)
輸出: 0~9,A~F組成的字符序列
輸入輸出樣例: 輸入:
6
1
3
8
10
15
11顯示結(jié)果為138AFB轉(zhuǎn)換規(guī)則:
0~9分別轉(zhuǎn)為0~9
10~15,分別轉(zhuǎn)為A~F
提示: 函數(shù)的格式為def trans(a):#a為0~15的整數(shù)組成的列表
return b#b為轉(zhuǎn)換后的列表或字符串4. 求整數(shù)各位數(shù)字的和
輸入整數(shù),求整數(shù)的各位數(shù)字的和。例如,輸入1234,各位數(shù)字的和為1+2+3+4=10,輸出10。
要求: ①輸入的數(shù),必須以整型數(shù)表示,不能用字符串。②用函數(shù)實(shí)現(xiàn)。
5.3實(shí)驗(yàn)指導(dǎo)〖*4/5〗1. 整數(shù)和小數(shù)的獲取Python中,內(nèi)置函數(shù) int()可以將數(shù)字組成的字符串轉(zhuǎn)換為整數(shù),例如: >>> a=int("12")
>>> type(a)
也可以獲得實(shí)數(shù)的整數(shù)部分,例如:>>> int(3.8)
3一個實(shí)數(shù)減其整數(shù)部分,就是它的小數(shù)部分。
2. 一位十六進(jìn)制數(shù)的轉(zhuǎn)換
就是把不同的輸入映射成不同的輸出。可以用if…elif…實(shí)現(xiàn),不過會需要很多的elif。簡潔的方法是使用字符串: H="0123456789ABCDEF"
print(H\[10\])字符串H中下標(biāo)是i的字符就是i對應(yīng)的十六進(jìn)制符號。
第2題和第3題的不同是,第2題的函數(shù)形參是一個整數(shù),第3題的形參是列表。列表的元素個數(shù)可以傳遞,也可以不傳。在Python中,列表的元素個數(shù)可以通過內(nèi)置函數(shù)len()獲取,例如: >>> L=\[1,2,3\]
>>> len(L)
33. 求各位數(shù)字的和
關(guān)鍵是分離各位數(shù)字。若a是十進(jìn)制整數(shù),分離個位的方法是 a%10。如何讓十位數(shù)字成為新個位呢?用a//10。再加上循環(huán),就可以得到a的每一位數(shù)字了。
5.4實(shí)驗(yàn)結(jié)果
(1) 按實(shí)驗(yàn)報(bào)告模板的格式編寫實(shí)驗(yàn)報(bào)告。
(2) 文件命名方式: lab05_學(xué)號.doc,如: lab05_2150601001.doc。
5.5小結(jié)
本實(shí)驗(yàn)是下一個實(shí)驗(yàn)的熱身。在數(shù)制轉(zhuǎn)換中,要把整數(shù)部分和實(shí)數(shù)部分分開處理,這就是第1題的目的。十進(jìn)制轉(zhuǎn)為十六進(jìn)制,不能把余數(shù)直接顯示出來,要把余數(shù)10轉(zhuǎn)換為A,這就是第2~3題。而其他進(jìn)制轉(zhuǎn)十進(jìn)制需要知道每一位的數(shù)字和權(quán),這就是第3題。
希望同學(xué)們在編程的時候,也能將復(fù)雜問題化為多個簡單問題,逐個解決。降低復(fù)雜度,不知不覺中,有了很大進(jìn)步。
本實(shí)驗(yàn)可以作為自測實(shí)驗(yàn),不提交實(shí)驗(yàn)報(bào)告,請任課老師把握。
……