欢迎来到天天文库
浏览记录
ID:57026826
大小:132.00 KB
页数:37页
时间:2020-07-26
《程序设计方法课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章程序设计方法1.逐步求精方法将一个完整的问题分解成若干相对独立的问题,只要将这些问题分别得到正确的解决,整个问题也就解决了。子问题又可分解成若干子问题重复进行下去,直到每个问题都已简单到使我们满意的程度。对每一步分解,要作出分解方法的决策;不同的决策会导致不同的解法。这种程序设计方法称为逐步求精,也就是编程时一步步地、不断地精细化过程。精细化过程可从顶上开始向下进行或从底端开始向上进行。程序自顶向下设计,再不断精细化较好。精细化过程的技术有三种,分割技术、递推技术、分析技术。分割技术步骤:1、把问题划分成不相交的一些部分,直到可用复合语句为止。2、依次解决划分后的每一部分问题。如:数据处
2、理中可划分为读入已知数据;计算、处理数据;打印输出数据等部分,然后依次解决每一部分。递推技术对问题作出有限进展,直到用循环语句实现。如果我们问题找到一个有朝向解的方向,作出有限进展,再重复用递推,使它最终达到完全的解。分析技术对问题用情况分析来精细化,直到可用条件语句为止。如:数据分为a,b,c,…,n几种情况,对每种情况处理可用:repeat读入一项数据case区分标识符ofa:…b:…若a,b,c,…还需要精细化,可再用上述三种方法进一步细化。逐步求精方法是一种适应性很强且十分有效的程序设计方法。用它解决问题时,可归纳如下:1、对实际问题要进行全局性分析、决策及数据模型的确定。2、要确定程
3、序的总体结构,将整个问题分解成若干相对独立的子块。3、要确定子块的功能及相互间的关系。4、在抽象的基础上,将各子块逐一精细化,直到能用确定的高级语言程序描述,得到完整的程序系统。验证“哥德巴赫猜想”哥德巴赫猜想是数论中的一个著名难题,是由法国数学爱好者克里斯蒂安·哥德巴赫于1742年在给著名数学家欧拉的一封信中提出的。“哥德巴赫猜想”可以表述为:任何一个大于等于4的偶数均可以表示为两个素数之和。尽管这个问题看来如此简明清晰,但二百多年来,虽有无数数学家为其呕心沥血、绞尽脑汁,却始终无人能够证明或者证伪这个猜想。求解第一步提出问题:验证哥德巴赫猜想第二步设一上限数M,验证从4到M的所有偶数是否能
4、被分解为两个素数之和。1.定义一个变量X,初值为4。2.每次令其加2,并验证X能否被分解为两个素数之和,直到X不小于M为止。第三步如何验证X是否能被分解为两个素数之和。1.从P=2开始;2.判别X—P是否仍为素数:3.若是,打印该偶数的分解式。4.否则,换更大的素数,再继续执行2.。如此循环,直到用于检测的素数大X/2且X与其之差仍不是素数,则打印“哥德巴赫猜想”不成立。第四步查找下一个素数。(1)当前素数P加1(2)判别P是否是素数;(3)若是素数,返回P;(4)否则,P加1,继续执行(2)。经过四步分解精化,将“验证哥德巴赫猜想”这个命题已经分解为计算机可以求解的数学模型
5、了。例:编写一个程序,打印n前素数(n为给定的正整数)beginread(n);x:=1;whilex=limpro
6、gramA515(INPUT,OUTPUT);varn,x,k,lim:integer;prim:boolean;beginread(n);x:=1;WRITE(2,',');whilex+1=lim);ifprimthenwrite(x,',');endend.逐步求精方法的最大优点是摆脱了传统的程序设计方法的束缚,按先全局后局部、先整体后细节、先抽象后具体的过程组织人们的
7、思维活动,使得编写了的程序结构清晰、容易阅读、修改。2、模块化程序设计方法降低大型软件系统结构的复杂性,采用:分解和抽象。分解:将软件系统划分成若干子系统分而治之;抽象:抽取系统的次要细节;模块化方法正是基于这二者而发展起来的。把一个程序分成具有多个明确任务的程序模块,分别进行编写和调试,最后再把它们连接在一起,形成一个完成总任务的完整程序,这种程序设计方式叫模块程序设计。这种方法的优点如下:(l
此文档下载收益归作者所有