Floyd不变式断言法在程序设计教学中的应用

来源 :计算机时代 | 被引量 : 0次 | 上传用户:vivian16s
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:《程序设计》是计算机专业学生的必修课程,教师非常重视对学生程序设计能力的培养。然而现有的程序设计教材未阐明程序和给定问题之间的关系,导致学生无法理解程序设计的本质。文章提出采用Floyd不变式断言法分析程序,并通过两个实例进行说明。教学实践证明,采用这种方法有助于学生理解程序。
  关键词:不变式断言法;程序正确性证明;最大公约数问题;自然数的平方根问题
  
  0 引言
  
  《程序设计》是计算机科学技术专业学生的必修课程,它同时也是一门基础课程,在教学过程中,教师都会非常重视对学生程序设计能力的培养。但作者在实际教学中,发现很多程序设计课程的教材均只给出了解决给定问题的程序,而没有给出这个程序为何能解决问题的分析过程。多数学生由于不明白程序和问题之间的关系,因而也就无法理解程序设计的本质,有些程序只能靠死记硬背。作者认为,若采用Floyd不变式断言法理解程序将能加深学生对程序设计本质的认识,很多精妙算法也就不难掌握了。
  
  1 Floyd不变式断言法
  
  不变式断言法是R.W.Floyd提出的,它是程序正确性证明的基本方法。利用不变式断言法证明一个程序的部分正确性时,通常分为以下3个步骤:
  (1)建立断言。一个程序除了要建立输入、输出断言外,如果程序中有循环出现,还要建立相应于该循环的不变式断言,即在循环中选取一个断点,在断点处建立一个适当的断言,使循环每次执行到断点时,断言都为真。
  (2)建立检验条件。在循环中建立断点后,程序执行中所有可能的通路就可以分解为几条有限的通路。对每一条通路建立一个检验条件,即程序运行通过该通路时应满足的条件。
  (3)证明检验条件。即证明步骤(2)中的所有检验条件,如果每一条通路检验条件为真,该程序是部分正确的。
  
  2 举例说明
  
  下面引用两个例子来说明Floyd不变式断言法在《程序设计》课程教学中的作用。
  2.1最大公约数问题
  以下这个程序完成的功能是求两个非负整数x,y(x,y不能同时为0)的最大公约数。这个算法很多学生都无法真正理解,为何一个如此简短的循环可以求出任意两个非负整数的最大公约数呢?本人在实际教学过程中发现,若采用Floyd不变式断言法对此程序进行分析,学生将能深刻理解此算法,同时也提高了学生理解程序设计本质的能力。
  
  注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”
其他文献
摘要:结合某电信知识管理系统中权限管理模块的实际需求,对RABC模型进行扩展,设计了针对功能和数据的权限管理模型,使权限管理具有更高的灵活性和实用性。  关键词:基于角色的访问控制;功能权限;数据权限;知识管理    0 引言    为降低客户服务成本,提高运营效率,构建学习型组织,某电信知识管理系统的实现目标是建立信息规范、分类规整、知识流畅通的先进、统一、高效的企业级知识管理体系。此系统具有功
期刊
摘要:二维条码作为一种新的信息存储和传递技术,具有信息容量大、不依赖于数据库和计算机网络、可靠性高、保密防伪性强和易于制作等优点,在各个领域有着广泛的应用前景。文章简要介绍了二雏条码的基本概念及其分类,并以PDF417条码为倒介绍了二维条码的码图结构和编解码过程。最后介绍了二维条码在3G中的应用方案。  关键词:二维条码;PDF417; 手机二维条码;3G    0 引言    条码技术的发明给计
期刊
摘要:数字滤波是数字信号处理的重要环节。数字滤波器可分为FIR和IIR两大类。文章根据FIR滤波器的设计原理.详细介绍了MATLAB环境下FIR数字滤波器的设计方法和操作步骤,并列出了设计实例程序及运行结果。关键词:MATLAB;数字信号处理;数字滤波器;有限脉冲响应    0 引言    数字滤波是数字信号处理的重要环节,是由乘法器、加法器和单位延时器组成的一种运算过程,它对输入的离散信号进行运
期刊
摘要:介绍了虚拟校园漫游系统的设计与开发技术,包括:OpenGL绘图窗口的创建;实体建模;纹理设置和贴图;界面和树的实现;虚拟仿真——利用VC++6.0开发平台,编制程序实现虚拟校园的漫游。该系统可以用于校园三维漫游、校园管理、校园规划等领域。  关键词:虚拟现实;OpenGL;实体建模;虚拟校园    0 引言    虚拟校园作为虚拟技术的一个应用,需运用计算机图形学以及图像处理技术结合三维可视
期刊
摘要:介绍了一种基于C8051F的足球机器人系统的原理及其实现方法。该系统充分利用了C8051F接口丰富、运算速度快的特点,采用PWM方式,实现了对直流电动机的控制,从而使足球机器人小车系统的运动性能、控制精度和抗干扰性都得到了很大的提高。  关键词:足球机器人;C8051F单片机;PWM;无线通信;PID控制    0 引言    机器人足球比赛是继计算机象棋出现后的人工智能发展的第二个里程碑。
期刊
摘要:统一建模语言UML广泛用于面向对象技术的建模,B方法主要是用抽象机来描述软件系统的规格说明。文章针对软件开发中经常用到的UML模型,提出了基于B语言的UML形式化方法:通过将UML模型转化为B抽象机,实现了UML模型的形式化。实例分析表明,转换是可行的。  关键词:UML;形式化方法;抽象机;B方法    0 引言    形式化方法以严密的数学为基础,可以对系统进行严格、精确的规范,并可以对
期刊
摘要:用于VRMap平台的三维模型,可以采用3DS max制作,即通过运用拉伸和多边形等建模工具将二维平面图转换为三维立体图。文章重点介绍了建模过程中的优化技术和贴图制作过程。  关键词:3DS max;VRMap;虚拟现实;贴图    0 引言    VRMap是北京灵图软件技术有限公司的三维地理信息系统(GIS)平台软件,可以在三维地理信息系统与虚拟现实领域提供从底层引擎到专业应用的全面解决方
期刊
摘要:阐述了基于ASP+Flash技术计时动态生成系统的总体结构,对该系统的实现过程、关键技术均作了分析。该系统已在2006年“CCTV杯”大学生英语演讲竞赛浙江省赛区的竞赛中得到应用,具有一定的通用性、可扩展性、灵活性和推广价值。  关键词:学科竞赛;英语演讲;计时;Flash;ASP    0 引言    高校组织的学科竞赛,有助于激发学生的竞争意识和发扬团队合作精神,拓展学生知识面,培养学生
期刊
摘要:传统的Web服务不能进行状态的保存。为了实现有状态的Web服务,文章研究了基于数据库的有状态Web服务和基于单件模式的有状态Web服务两种实现方法。并以身份验证为例,分析了Web服务的消息传递机制,探讨了有状态Web服务在.NET框架中的实现方法。  关键词:Web服务;有状态;无状态;单件模式;.NET框架    0 引言    随着Web服务应用范围的不断扩展,灵活的消息传递机制在许多复
期刊
摘要:介绍了RedHat Linux 9和Windows两个系统的特点,以及它们所支持的分区格式;重点分析了Samba协议的功能、安装、测试、配制、Samba的启动与停止;通过具体的实例详细说明了如何对Samba进行设置来实现两个系统的互访,为Linux在校园网中的广泛应用奠定了基础。  关键词:RedHat Linux 9;Samba;Windows2000;互访;挂载    0 引言    现
期刊