本書是國家精品課程“大學計算機基礎”的主講教材和“高等教育*教學成果獎”配套教材,為普通高等教育“十一五”*規劃教材并獲全國高校出版社*暢銷書獎。
本書是趙英良主編的《大學計算機基礎(第5版)》(清華大學出版社,2017)的配套實驗指導書,可作為高校理工科專業*門計算機課程的實驗教材。本書設計了18個實驗,包括計算機常用操作、Python編程、信息表示、數據壓縮、棧的應用、隊列的應用、二叉樹的遍歷、二分查找、快速排序、遞歸、分治法、數據庫操作、檢錯、加解密等。
本書與主教材同步,操作步驟詳細,涉及的應用問題貼近生活,實用、有趣,幫助讀者在輕松快樂的氛圍中掌握操作技能,加深理論理解。
本書是趙英良等編寫的《大學計算機基礎(第5版)》(清華大學出版社,2017)的配套實驗指導書。
本書設計了18個實驗,它們是:
實驗1計算機常用操作實驗10二叉樹的遍歷
實驗2Python使用基礎實驗11排序和查找
實驗3Python的列表實驗12遞歸
實驗4Python的列表字符串和函數實驗13算法實驗
實驗5數據的簡單變換實驗14自主實驗
實驗6數制的轉換(1)實驗15數據庫基礎操作
實驗7數制的轉換(2)實驗16數據查詢
實驗8Huffman編碼和Zip壓縮實驗17檢錯
實驗9棧和隊列的應用實驗18加密和解密
每個實驗體例包括實驗目的、實驗內容、實驗指導和實驗報告要求,特別是每個實驗還有一個小結,總結實驗內容、要掌握的關鍵技術、要理解的主要概念等,讓學生知道這個實驗“到底是干什么的”。
本書是在“大學計算機基礎”課程多年實驗教學的基礎上編寫的,具有如下特點:
(1)內容與教材同步
針對教材中要求學生掌握的重點、難點和要點設計實驗,其中實驗2~4涉及主教材第2章的內容;實驗5~8涉及主教材第3章的內容,實驗9~10涉及主教材第4章的內容,實驗11~14涉及主教材第5章的內容,實驗15~16涉及主教材第6章的內容,實驗17~18涉及主教材第7章的內容。
(2)操作步驟針對性強
每章的實驗指導都是根據學生實驗中的問題編寫的。如實驗1,其內容是剛上大學的學生經常遇到的問題,目的是為以后的學習掃清障礙。
(3)問題實用有趣
實驗涉及的應用問題大多貼近生活,實用、有趣,如數制轉換、數據壓縮、快速排序、小詞典、漢語塔問題求解、科赫曲線、解不定方程、最優裝載、書號校驗和加解密系統等。
本書由趙英良主編,賈應智、夏秦和仇國巍老師參加編寫,編寫過程中衛顏俊、喬亞男等老師也提出了許多寶貴意見,在此表示感謝。
由于編者水平有限,書中會有很多不足之處,懇請專家、同行和同學們批評指正。
編者
2017年6月于西安
第5章實驗5數據的簡單變換
5.1實驗目的
(1) 學習獲取實數整數部分和小數部分的方法。
(2) 學習十六進制數的標記方法。
(3) 學習數據的基本變換的方法。
(4) 復習列表、函數的使用方法。
5.2實驗內容〖*4/5〗1. 求實數的整數部分和小數部分編寫程序,求實數的整數部分和小數部分。例如:
輸入: 15.83
輸出:
整數部分15
小數部分0.83
2. 一位十六進制數的轉換
編寫函數,將\[0,15\]之間的整數,轉換為0~F的十六進制符號。例如:
輸入:9
輸出: 9
輸入: 10
輸出: A
轉換規則:
0~9分別轉為0~9
10~15,分別轉為A ~F
要求: 程序要能接受連續的輸入,即每輸入一個數,就顯示結果,然后繼續等待用戶輸入,直到用戶輸入-1,程序結束。3. 將列表中的數轉換為一位十六進制數
編寫函數,將由0~15的整數組成的列表轉換為0~9,A~F組成的新列表。編寫主函數,輸入由0~15的整數組成的列表,調用函數進行轉換,將返回結果顯示出來。
輸入: 元素個數n和n個0~15的整數
輸出: 0~9,A~F組成的字符序列
輸入輸出樣例: 輸入:
6
1
3
8
10
15
11顯示結果為138AFB轉換規則:
0~9分別轉為0~9
10~15,分別轉為A~F
提示: 函數的格式為def trans(a):#a為0~15的整數組成的列表
return b#b為轉換后的列表或字符串4. 求整數各位數字的和
輸入整數,求整數的各位數字的和。例如,輸入1234,各位數字的和為1+2+3+4=10,輸出10。
要求: ①輸入的數,必須以整型數表示,不能用字符串。②用函數實現。
5.3實驗指導〖*4/5〗1. 整數和小數的獲取Python中,內置函數 int()可以將數字組成的字符串轉換為整數,例如: >>> a=int("12")
>>> type(a)
也可以獲得實數的整數部分,例如:>>> int(3.8)
3一個實數減其整數部分,就是它的小數部分。
2. 一位十六進制數的轉換
就是把不同的輸入映射成不同的輸出。可以用if…elif…實現,不過會需要很多的elif。簡潔的方法是使用字符串: H="0123456789ABCDEF"
print(H\[10\])字符串H中下標是i的字符就是i對應的十六進制符號。
第2題和第3題的不同是,第2題的函數形參是一個整數,第3題的形參是列表。列表的元素個數可以傳遞,也可以不傳。在Python中,列表的元素個數可以通過內置函數len()獲取,例如: >>> L=\[1,2,3\]
>>> len(L)
33. 求各位數字的和
關鍵是分離各位數字。若a是十進制整數,分離個位的方法是 a%10。如何讓十位數字成為新個位呢?用a//10。再加上循環,就可以得到a的每一位數字了。
5.4實驗結果
(1) 按實驗報告模板的格式編寫實驗報告。
(2) 文件命名方式: lab05_學號.doc,如: lab05_2150601001.doc。
5.5小結
本實驗是下一個實驗的熱身。在數制轉換中,要把整數部分和實數部分分開處理,這就是第1題的目的。十進制轉為十六進制,不能把余數直接顯示出來,要把余數10轉換為A,這就是第2~3題。而其他進制轉十進制需要知道每一位的數字和權,這就是第3題。
希望同學們在編程的時候,也能將復雜問題化為多個簡單問題,逐個解決。降低復雜度,不知不覺中,有了很大進步。
本實驗可以作為自測實驗,不提交實驗報告,請任課老師把握。
……