国际象棋棋盘上的麦粒.doc_第1页
国际象棋棋盘上的麦粒.doc_第2页
国际象棋棋盘上的麦粒.doc_第3页
国际象棋棋盘上的麦粒.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国际象棋棋盘上的麦粒1、实践目标(1)理解循环语句的作用,能根据实际情况正确使用For语句。(2)学会使用VB循环控制结构编写程序,实现简单的算法。2、任务描述在印度有一个古老的传说:舍罕王打算奖赏国际象棋的发明人宰相西萨班达依尔。国王问他想要什么。他对国王说:陛下,请您在这张棋盘(图7-1)的第1个小格里, 赏给我1粒麦子,在第2个小格里给2粒,第3小格给4粒,以后每一小格都比前一小格加1倍。请您像这样摆满棋盘上所有64格的麦粒,都赏给您的仆人吧!国王觉得这个要求太容易满足了就命令给他这些麦粒。当人们把一袋一袋的麦子搬来开始计数时,国王才发现:就是把全印度甚至全世界的麦粒全拿来,也满足不了那位宰相的要求。那么,宰相要求得到的麦粒到底有多少呢?尝试设计一个程序来计算。3、操作提示(1)问题分析本问题可用累加的方法来求解,即最后得到的麦粒数由每一格赏赐的麦粒数相加得到,而且相邻的格子要求得到赏赐的麦粒数也是有一定规律的,即后一格是前一覆盖麦粒数的2倍。若用i表示当前所处的格子,p表示此格子中应该赏赐的麦粒数,s表示累加得到的麦粒数,分析过程见表7-1。表7-1格(i)每格存放麦粒数(p)累加和(s)111221+2341+2+4481+2+4+85161+2+4+8+166321+2+4+8+16+3264由表7-1的分析可得i= ,p= ,s= 。(2)设计算法。根据上面的分析,可画出算法流程图如下:NY开始输入棋盘上的格子数n累加得到的麦粒数置初值s0当前格子的麦粒数置初值p1置初值:i1in?ss+ppp*2ii+1输出麦粒数s结束(3)程序实现。将下列根据上面算法编写的代码填写完整。Private Sub Command1_Click( )Dim n As Integer, i As Integer, p As Double, s As Doublen=Val(Text1.Text)s=0p=1For i= To n s= p= Next iText2.Text=Str(s)End Sub新建工程,创建窗体。界面设计参照图7-2,属性设置参照表7-2。表7-2 窗体中主要控件属性设置对象属性名称属性值Form1Caption国际象棋棋盘上的麦粒Label1Caption请输入当前所处的棋盘格数(n=)Label2Caption赏赐的麦粒总数(s=)Text1Text(空白)Back Color&H00FFC0C0&(蓝色)Text2Text(空白)Back Color&H00FFC0C0&(蓝色)Command1Caption计算将上面完成的代码段输入到计算按钮的代码窗口中。调试运行程序。(4)假如每颗麦粒

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论