- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验04二维数组2013版经典设计
实验四 二维数组基本操作的编程实现
【实验目的】
二维数组基本操作的编程实现
要求:
二维数组基本操作的编程实现(2学时,验证型),掌握二维数组的建立、读取数据、压缩存储等基本操作的编程实现,存储结构可以在顺序结构或链接结构中任选,也可以全部实现。也鼓励学生利用基本操作进行一些应用的程序设计。
【投入时间】分散设计时间从1小时到20小时不等,由学生自己决定,班级集中在机房时间2小时。
【实验性质】
验证性实验(学时数:2H)
【实验内容】
1. 修改程序:补充推箱子游戏的遗缺的部分,使之能正常运行,逻辑结果正确。之后增加至少一关自己的关数,墙体,箱子的最初位置,人的最初位置由自己设定,要求必须有解,而且有一定的破解难度。主要的问题是部分移动方向的代码没有给出,另外计数器的整体工作不正常,更完善的修改包括启用栈结构实现后悔的机制。
2.运行程序了解二维结构:稀疏矩阵的压缩和解压缩、生命繁衍模型、迷宫问题等,通过这些程序的运行过程或结果体会二维结构在程序设计中的重要性和实用性。
【原始数据构建方式】最简模式为:键盘输入。其他的方式也在鼓励之中:数据内置,计算机自动生成,文件读入。
【思考问题】
数组的下标从什么地址开始?好处是什么?
二维数组的表达能力仅仅限于横向和纵向的数据关系吗?
压缩数据主要的思路是什么?
为什么用数组可以存储超出计算机数据要求的范围的数字?
举出几个数组的应用范例?
【实验使用参考书】
本实验指导书主要参考书为:
《数据结构与程序构建》马春江 付勇智 孟繁军编著 ISBN 978-7-302-29404-7 清华大学出版社 2012年8月第1版
【参考代码】
void box::right if map[positionh][positionl+1] 0 map[positionh][positionl+1] 4;
if flag 1 map[positionh][positionl] 2; flag 0; else map[positionh][positionl] 0;
positionl++; else if map[positionh][positionl+1] 2 //人要到目标位置上 map[positionh][positionl+1] 4;
if flag 1 map[positionh][positionl] 2;//恢复目标位置
else map[positionh][positionl] 0;//恢复原来的状态 flag 1;//标志位,记录人在目标位置上 positionl++; else if map[positionh][positionl+1] 3map[positionh][positionl+2] 0 //将箱子推到空白位置上 map[positionh][positionl+2] 3;
map[positionh][positionl+1] 4;
if flag 1 map[positionh][positionl] 2; flag 0; else map[positionh][positionl] 0;
positionl++; else if map[positionh][positionl+1] 5map[positionh][positionl+2]! 1 //要将箱子从目标位置上推出 if map[positionh][positionl+2] 2 //下一个位置还是目标位置 map[positionh][positionl+2] 5; map[positionh][positionl+1] 4; if flag 1 map[positionh][positionl] 2; else map[positionh][positionl] 0; flag 1; else if map[positionh][positionl+2] 0 //下一个位置是空白 map[positionh][positionl+2] 3; map[positionh][positionl+1] 4; if flag 1 map[positionh][positionl] 2; else map[positionh][positionl] 0; flag 1; positionl++; else if map[positionh][positionl+1] 3map[positionh][positionl+2] 2 //要将箱子推到目标位置上 map[positionh][positionl+2] 5;//箱子在目标位置上
map[positionh][positionl+1] 4;
if flag 1 //人在目标位
原创力文档


文档评论(0)