- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
南京邮电大学通达学院
程序设计(上机)报告
题目:R004M,P005H
专业网络工程
学生姓名
班级学号
指导教师
日期
评分细那么
评分项
优秀
良好
中等
及格
不及格
遵守机房规章制度
上机表现
学习态度
根底知识水平
程序设计能力
课题功能实现情况
算法设计合理性
用户界面友好性
报告书写认真程度
报告内容完整性
文字表达清楚程度
问题答复准确性
评分等级
教师签名:
年月日
备注
注:评分等级分为五种:优秀、良好、中等、及格、不及格
狼羊白菜过河程序实验报告
问题描述
一个人带着一只羊,一条狼和一颗白菜想过河,假设他每次只能带一只羊,或者一条狼,或者一颗白菜过河,并限定人不在场时,狼和羊,或羊和白菜不能单独在一起,试编写程序求出他带一只羊,一条狼和一颗白菜过河的方法。
结构图
过河
过河
农夫选择
相斥共存
程序运行
输出结果
三、结构设计
1、狼和羊、羊和白菜不能单独在一起,涉及对象较多,而且运算步骤方法较为复杂,要用程序语言实现,需要将具体实例数字化。针对实现整个过程需要多步,不同步骤中各个事物所处位置不同的情况,可定义一个二维数组或者结构体来实现对四个对象狼、羊、白菜和一个人的表示。对于岸的两侧可以用0或者1来表示,以实现在程序设计中的简便性。
对狼羊白菜的过河步骤,没有顺序的约束,因此需要给各个事物依次进行编号,然后依次尝试,假设成功,进行下一步,使用循环或者递归算法进行程序
程序使用递归算法,为了方便将各个实例数字化。定义二维数组inta[M][4]存储每一步中各个对象所处的位置,用0-3分别表示二维数组的一维下标。具体对应为:wolf-0goat-1cabbage-2people-3
将本岸和对岸数字化,其对应为:本〔东〕岸-0对〔西〕岸-1
具体对应实例比方在第3步之后狼在本岸,羊在对岸,白菜在本岸,农夫在对岸,那么其存储结果为:
a[3][0]a[3][1]a[3][2]a[3][3]
0101
最初存储状态为:a[0][0]a[0][1]a[0][2]a[0][3]
0000
成功渡河之后,二维数组存储应为:
a[istep][0]a[istep][1]a[istep][2]a[istep][3]
1111
因此a[iStep][0]+a[iStep][1]+a[iStep][2]+a[iStep][3]==4。
题目要求狼和羊、羊和白菜不能在一起,即出现以下情况:
a[iStep][1]!=a[iStep][3](a[iStep][2]==a[iStep][1]||a[iStep][0]==a[iStep][1])那么出现错误,应返回操作。
递归开始结束a[0][0]=0,a[0][1]=0,a[0][2]=0,a[0][3]=0
递归
开始
结束
a[0][0]=0,a[0][1]=0,a[0][2]=0,a[0][3]=0
同时定义一维数组b[M]来存储每一步中人是如何过河的。设计程序中实现递归操作局部的核心程序为:
for(i=-1;i=2;i++)
{b[iStep]=i;
memcpy(a[iStep+1],a[iStep],16);a[iStep+1][3]=1-a[iStep+1][3];
if(i==-1)
{
search(iStep+1);
}
elseif(a[iStep][i]==a[iStep][3])
{a[iStep+1][i]=a[iStep+1][3];
search(iStep+1);
}
}
每次循环从-1到2依次代表渡河时为一人、带狼、带羊、带白菜通过,利用语句“b[iStep]=i”分别记录每一步中渡河方式,“a[iStep+1][i]=a[iStep+1][3]”即利用赋值方式使狼或羊或白菜与人一同到对岸或者回到本岸。假设渡河成功,那么依次输出渡河方式。“i=2”即为操作的限制,当假设i=2时仍无符合条件的方式,那么渡河失败。
在递归的
您可能关注的文档
- 物理辅导材料四(专题-运动的图像).doc
- 七年级英语上(-开学第一课-(1).ppt
- 中国人寿创业说明会课件.ppt
- 两位数减一位数退位.ppt
- 三年级上册《语文园地二》.ppt
- 环湖南路古城1号特大桥钢栈桥专项方案(终)5.21专家评审.doc
- 牙膏市场营销策划(云南白药牙膏)王堂欢.doc
- 七年级生物《流动的组织-血液》PPT.ppt
- 与客户资产同步.ppt
- 物流技术与实务第2章3.doc
- 分析let s单元56ago2卷纸zheng unit56.pdf
- 塑胶材料其它分类原料pa9t 12.pdf
- md16x16数字媒体切换器设备.pdf
- 者参考项目发起人学科类型单位序列承包商修订页代码顺序典型.pdf
- 届世界天然气大会阿姆斯特丹2006add10288.pdf
- 期测试记录表每周weekly g1g6 journeys tests level 6 lesson26.pdf
- modernize-whitepaper现代化您应用程序白皮书.pdf
- anybackup产品典型案例分析.pdf
- 约克金融工程课程tfeslide32.pdf
- 广州市妇女儿童医疗中心历份教学药历01tjy.pdf
文档评论(0)