汉塔执行过程详解及执行流程动态演示

来源 :硅谷 | 被引量 : 0次 | 上传用户:zeus2040
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要: 递归调用的实质是返回地址及参数不断进栈过程,分析时注意形参与实参的结合,若是变参不在重新分配内存单元,若是值参重新分配内存单元,登记该变量在本层的实际值,返回时应使用本层原来保留的参数值。
  关键词: 递归;堆栈;动态演示
  1 递归的基本思想
  递归是在调用一个函数的过程中又出现直接或间接调用该函数的本身,或者说递归是从需求函数的本身出发,逐次上溯到调用其本身的求解过程,一直达到递归的边界条件。
  递归算法清晰简练、易读,但要讲清楚递归的执行过程,让学生能够掌握递归的实质以及揭示递归与堆栈的内在联系,却不是一件很容易的事。
  3 执行流程图分析
  为了讲清执行过程,依据上述算法在屏幕上画出执行流程图,因屏幕关系,以园盘个数3为例,在设计时,我们分层画出每层的语句图。把首次调用递归程序的语句设为0层,由它进入递归子程序,并设为第一层,在递归子程序内由30,50语句各调用自身两次,分别设为第二层和第三层。并画出每层的语句图,屏幕从左到右,分别为0层、1层、2层、3层,在0层仅有一个hanoi N, 1, 2, 3语句框图,执行过程详细框图见图1。图中的h(n,a,c,b)为hanoi N- 1, A, C B的缩写。
  4 递归程序执行前分析
  递归过程的实质是循环执行递归过程中递归调用语句前的几个语句,每次执行递归调用语句时将返回地址及实參的值进栈保留,调用时注意形参与实参的结合。若是变参不在重新分配内存单元,若是值参(如本例中的N,A,B,C)每调用一次都给N,A,B,C变量重新分配内存单元,登记该变量在本层的实际值,当我们单击调用递归按钮时,0层便开始调用递归程序,实参N(设N=3),1,2,3分别分别传送给形参N,A,B,C。这时返回地址FH及N,A,B,C对应的实参值进栈,当N不为1时,在第一层用30语句hanoi N - 1, A, C, B(实际用2,1,3,2)再调用,进入第二层,N又不为1,再用30语句hanoi N - 1, A, C, B(实际用1,1,2,3)调用,进入第三层满足N=1时,则执行20:A->C,这时对初学者来说往往找不到A,C的实际值,而无法写出源柱和目标柱。有了流程图,我们只看上层调用时的A,C的实际值,便一目了然。执行完20语句后,遇到60 END SUB 语句,返回第二层,又执行40 A->C,这时的A,C值仍然只看上层调用时的A,C值。
  5 汉诺塔问题执行祥解动态演示
  为了验证分析结果,本人开发了汉诺塔问题执行详解动态演示程序,执行该程序,首先在屏幕上显示上面的图1,然后点击图1中的第0层“调用递归按钮”时,便执行第0层中的“H(3,1,2,3)”,此时该语句便涂上黄色,同时屏幕中央显示对话框,提示是否继续,单击“是”,这时图1中第0层与图1中第1层之间的调用箭头便涂上红色,表示程序即将转入第1层,这时屏幕中央又显示对话框,提示是否继续,单击“是”,我们将看到图1中第1层“10 IF N=3 <>1直接调用自身”标签框涂上绿色,当我们继续,单击对话框中提示是否继续中的“是”时,程序会按照图1调用次序依序执行。它生动而直观显示了执行步骤,调用层次及每层参数的变化和返回时的路径,当遇到执行A->C语句时,根据上层调用的参数,很方便地写出执行结果。动态演示程序是在上述屏幕流程图的基础上依次按递归算法单步执行各语句,并以不同颜色显示出执行结果。
  参考文献:
  [1]龚沛曾,VISUAL BASIC程序设计简明教程,高教出版社.
  [2]刘炳文,精通VISUAL BASIC6.0中文版,电子工业出版社.
其他文献
摘要:在我国的现代化建设中,土木工程随着社会和科技的发展,相应的建筑技术也变得复杂化和多样化。土木工程施工技术作为建筑工程中重要的组成部分,对工程的施工质量、进度、控制都有着非常大的影响。本文就主要对土木建筑工程施工的问题与措施进行了简要分析。  关键词:土木工程;特点;管理  中图分类号:TU198文献标识码: A   引言  随着我国建筑事业的不断发展,土木工程施工管理技术也有了相应的进步。在
期刊
摘 要:目前我国的建筑行业仍处于建立现代企业制度的阶段,而发达国家正把精力投向项目管理。这一动向提醒我们在高度重视企业管理现代化的同时,需要给予项目管理更多的关注。随着国际竞争日趋激烈,国内工程项目管理必然与国际接轨,必须采取相应措施才能迎接国际化和知识经济时代到来。  关键词:建设工程;项目管理  中图分类号:E271文献标识码: A   引言  不管国民经济如何发展,工程项目建设必然会保持其主
期刊
期刊
摘 要:输水管线在运行时,有时需要进行流量调节,常用的调节手段是阀门操作。大口径的输水管线为防止产生破坏性的水锤,常采用分级逐步对阀门操作,在两次阀门操作之间,需等待水力条件稳定后再进行下一次的阀门操作,因此两次阀门操作之间的水流稳定时间是重要的影响因素。通过对达西公式的分析,确定阀门操作水流稳定时间,在水流稳定后再进行下一步的阀门動作,可保证水力状态不叠加,不会产生因水锤致使管线爆管的事故。  
主要论述了作业在数学学习过程中的作用;提高学生做作业的效果;作业批改后的处理方法实践。 Mainly discusses the role of homework in the process of mathematics learni
2014年11月8日,由本刊和《三晋都市报》联合主办,《山西妇女报》、半边天网、山西省女作家协会、山西省女企业家协会等单位共同发起,春江映月文化发展集团承办的“山西首届女
摘要:建筑施工企业加强对建筑经济成本的管理成为企业发展的一个重要课题,对建筑经济成本管理的理念的提升以及各种管理措施的应用成为建筑施工企业发展的一个必要手段。本文浅述了建筑经济成本管理的相关概念以及具体的措施。   关键词:市场经济;建筑经济;成本管理  中图分类号:TU9文献标识码: A   引言  在市场经济的背景下,我国建筑行业正在经历快速发展的阶段,同时也面临着诸多挑战,随着竞争对手数量和
期刊
为了考察负荷及碳氮比对分散式生活污水处理装置处理效果的影响,本文研究了分散式生活污水处理装置对不同浓度和不同碳氮比模拟污水的处理效果.结果发现,该处理装置具有较良
期刊
摘要:在建筑企业施工过程中,材料是构成工程实体的重要要素,并且其费用占有工程造价很大的部分。能否以高水平的技术对材料进行管理,关系到施工企业经济效益的好坏,只有通过良好的管理,才能做到施工成本低、质量好的效果。本文主要对建筑企业在施工过程中对建筑材料的管理相关问题进行了简要分析。  关键词:建筑工程;材料管理;意义  中图分类号:TU198文献标识码: A   引言  建筑企业要在激烈的市场竞争中
期刊