下载此文档

实验三.docx


文档分类:高等教育 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
实验五子程序设计 实验目的与要求 实验目的掌握子程序设计的原理和方法, 重点掌握子程序编写和调用的过程以及堆栈操作和参数以及局部变量的概念。 实验要求(1 )编写子程序(2 )在主程序中调用子程序(3 )实现主程序与子程序的参数传递 示例例 汉诺塔问题的解决方案 1. 分析通常, 汉诺塔问题可分两种情况来解决。如果仅有一个盘子, 那么, 单盘可以简单地从原柱移到目标柱。如果盘数 NbrDisks 大于 1, 则顶上的( NbrDisks-1 ) 个稍小的盘子从目标柱移到备用柱,最大的盘子移到目标柱,最后,( NbrDisks-1 )个稍小的盘子从备用柱移到目标柱。每次( NbrDisks-1 ) 个盘子被移之后, 除了原柱、目标柱和备用柱的角色发生了变化之外,其他步骤将被重复执行。 2. 程序流程的伪代码如下。 Procedure Move(NbrDisks, Source, Destination, Spare); Begin If NbrDisks =1 Then display “ Move Disk from ”,Source, “ to” Destination ; 如果仅有一个盘子,那么,单盘可以简单地从原柱移到目标柱 Else Move(NbrDisks-1, Source, Spare, Destination) ; 顶上的( NbrDisks-1 )个稍小的盘子从目标柱移到备用柱 Move(1,Source, Destination, Spare) ; 最大的盘子移到目标柱 Move(NbrDisks-1, Spare, Destination, Source) ; ( NbrDisks-1 )个稍小的盘子从备用柱移到目标柱 End if; End procedure Move; Begin (main program) Prompt for and input Number; 提示输入 Number Move(Number, ‘A’,‘B’,‘C’); 调用 Move 子程序 End; 3. 运行情况程序运行情况如图 。图 例 程序运行结果 源程序清单; program to print instructions for "Towers of Hanoi" puzzle ; author: R. Detmer revised: 10/97 .386 .MODEL FLAT ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD include ; header file for input/output cr equ 0dh ; carriage return character Lf equ 0ah ; line feed .STACK 4096 ; reserve 4096-byte stack .DATA ; reserve storage for data prompt BYTE cr,Lf,'How many disks? ',0 number BYTE 16 DUP (?) message BYTE cr,Lf,'Move disk from spindle ' source

实验三 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人gyzhluyin
  • 文件大小0 KB
  • 时间2016-06-11
最近更新