本书是国家精品课程“大学计算机基础”的主讲教材和“高等教育*教学成果奖”配套教材,为普通高等教育“十一五”*规划教材并获全国高校出版社*畅销书奖。
本书是赵英良主编的《大学计算机基础(第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题。
希望同学们在编程的时候,也能将复杂问题化为多个简单问题,逐个解决。降低复杂度,不知不觉中,有了很大进步。
本实验可以作为自测实验,不提交实验报告,请任课老师把握。
……