数制转换实验报告

数制转换实验报告

ID:41681090

大小:49.29 KB

页数:8页

时间:2019-08-29

数制转换实验报告_第1页
数制转换实验报告_第2页
数制转换实验报告_第3页
数制转换实验报告_第4页
数制转换实验报告_第5页
资源描述:

《数制转换实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1.实验题目1、数制转换问题[问题描述]将十进制数N和其它d进制数的转换是计算机实现计算的基本问题,其解决方案很多,其中最简单方法基于下列原理:即除d取余法。例如:(1348)10=(2504)8NNdiv8Nmod8134816841682102125202从中我们可以看出,最先产生的余数4是转换结果的最低位,这正好符合栈的特性即后进先出的特性。所以可以用顺序栈來模拟这个过程。2.需求分析1.对于键盘输入的任意一个非负的十进制整数,打印输出与其等值的八进制数。由于上述的计算过程是从低位到高位顺序产

2、生的八进制数的各个数位,而打印输出,一般来说应从高位到地位进行,恰好和计算过程相反。因此可以先将计算过程屮得到的八进制数的各位进栈,待相对应的八进制数的各位均产生以后,再使其按顺序出栈,并打印输出。即得到了与输入的十进制数相对应的八进制数。2.数据测试。1)输入十进制数2000,输出相应的八进制数。2)输入十进制数1234,输出相应的八进制数。3.概要设计1)为了实现上述程序功能,需要定义栈的抽象数据类型:1、为实现上述程序功能,应以有序链表表示集合。ADTstack{数据对象:D二{久a戶刃,心1

3、,2,…,n,n>0}数据关系:R产{〈°1,0・〉

4、Q“a$D,i=2,…,n}基本操作:Initstdck(&s)操作结果:构造一个空的栈s.push(&s,e)初始条件:栈S已存在操作结果:插入元素e作为栈顶元素。pop(&s,e)初始条件:栈S已存在,且非空操作结果:删除S的栈顶元素,并用e返回。2)本程序包含3个函数调用模块voidinitstack(sqstack&S)voidpush(sqstack&S,inte)voidpop(sqstack&S,int&e)1.详细设计实现概要设计

5、中定义的所有的数据类型,对每个操作给出伪码算法。对主程序和其他模块也都需要写出伪码算法。一.源程序文件名清单:Stdio.II//主程序Malloc.H//动态存储分配实现单元^defineSTACK_IN1T_SIZE10#defineSTACKINCREMENT100二.结构类型构造typedefstructfint*base;int*top;intstacksize;}sqstack;三.基本函数操。1.voidinitstack(sqstack&S){S.base=(int*)malloc(

6、STACK」NIT_SIZE*sizeof(STACKINCREMENT)*sizeof(int));S.top=S.base;S.stacksize=STACK_INIT_SIZE;return;}//initstack2・voidpush(sqstack&S,inte){if(S.top-S.base>=S.stacksize){S.base=(int*)realloc(S.base?(S.stacksize+STACKINCREMENT)*sizeof(int));if(!S.base)pri

7、ntf(H储存分配失败");S.top=S.base+S.stacksize;S.stacksize=STACKINCREMENT;}*S.top++=e;return;}3・voidpop(sqstack&S,int&e){if(S.top==S.base)pnntf(H错“);e=*-S.top;return;}一.主函数voidmain(){intm;sqstacks;inte;initstack(s);printf("请输入一个数:");scanf("%d,,/&m);while(m){

8、push(s,m%8);〃在栈屮插入除八后的余数部分m=m/S;}while(s.top!=s.base){pop(s,e);〃弹th栈顶的元素printf("%dnze);}}1.调试分析略2.使用说明1、本试验使用的运行软件是VC++6.0。2、进入演示程序后即显示文本方式的用户界面:厂•E:ProgramFilesMicrosoftVisualStudioM请输入一个数:3、输入需要转化的十进制数。3.测试结果1.输入2000得到的结果为20003720Pressanykeytocont

9、inue2输入1234得到结果为;2、回文判断[问题描述]试写一个算法,判断依次读入的一个以@为结束符的字母序列,是否为形如'序列1&序列2,模式的字符序列。其屮序列1和序列2中都不含字符且序列2是序列1的逆序列。例如,‘a+b&b+a'是属该模式的字符序列,而'1+3&3—1'则不是。1.需求分析1.对于键盘输入的任意一个@为结束符的字母序列,是否为形如'序列1&序列2'模式的字符序列。判断是否符合要求的模式;并输出判断的结果。2.数据测试。1)输入qwer&rew

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。