清华大学软件工程课件06.ppt

清华大学软件工程课件06.ppt

ID:48175374

大小:255.50 KB

页数:105页

时间:2020-01-16

清华大学软件工程课件06.ppt_第1页
清华大学软件工程课件06.ppt_第2页
清华大学软件工程课件06.ppt_第3页
清华大学软件工程课件06.ppt_第4页
清华大学软件工程课件06.ppt_第5页
资源描述:

《清华大学软件工程课件06.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、程序编码结构化程序设计程序设计风格程序效率程序复杂性度量结构化程序设计结构化程序设计主要包括两方面:在编写程序时,强调使用几种基本控制结构,通过组合嵌套,形成程序的控制结构。尽可能避免使用GOTO语句。在程序设计过程中,尽量采用自顶向下和逐步细化的原则,由粗到细,一步步展开。结构化程序设计的主要原则使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。选用的控制结构只准许有一个入口和一个出口。程序语句组成容易识别的块,每块只有一个入口和一个出口。复杂结构应该用基本控制结构进行组合嵌套来实

2、现。语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中应前后一致。严格控制GOTO语句,仅在下列情形才可使用: ①用一个非结构化的程序设计语言去实现一个结构化的构造。 ②若不使用GOTO语句就会使程序功能模糊。 ③在某种可以改善而不是损害程序可读性的情况下。例1打印A,B,C三数中最小者程序程序1if(A

3、oto100;130write(A);140end程序2if(A

4、m);if(abs(fm)

5、

6、abs(x1-x0)0){x0=xm;f0=fm;} elsex1=xm;}finish:printf(“Therootofthisequationis%d”,xm);}单入口,两出口正常出口是循环达到n次,非正常出口是循环中途控制转出到标号finish所在位置可读性好f0=f(a);f1=f(b);//程序2if(f0*f1<=0){x0=a;x1=b;for(i=1;i<=n;i++){xm=(x

7、0+x1)/2;fm=f(xm);if(abs(fm)<eps

8、

9、abs(x1-x0)<eps)break;if(f0*fm>0) {x0=xm;f0=fm;} elsex1=xm;}}f0=f(a);f1=f(b);//程序3if(f0*f1<=0){x0=a;x1=b;i=1;finished=0;while(i<=n&&finished==0){xm=(x0+x1)/2;fm=f(xm);if(abs(fm)<eps

10、

11、abs(x1-x0)<eps)finished=1;if(finish

12、ed==0)if(f0*fm>0) {x0=xm;f0=fm;} elsex1=xm;}}引入布尔变量finished,改for型循环为while型,将单入口多出口结构改为单入口单出口结构。自顶向下,逐步求精在详细设计和编码阶段,应当采取自顶向下,逐步求精的方法。把一个模块的功能逐步分解,细化为一系列具体的步骤,进而翻译成一系列用某种程序设计语言写成的程序。例,用筛选法求100以内的素数筛选法就是从2到100中去掉2,3,…,9,10的倍数,剩下的就是100以内的素数。为了解决这个问题,可先按程

13、序功能写出一个框架。main(){//程序框架建立2到100的数组A[],其中A[i]=i;-----------------------------------1建立2到10的素数表B[],其中存放2到10以内的素数;-----------2若A[i]=i是B[]中任一数的倍数,则剔除A[i];---------------------3输出A[]中所有没有被剔除的数;-----------------------------------4}main(){/*建立2到100的数组A[],其中A

14、[i]=i*/for(i=2;i<=100;i++)A[i]=i;/*建立2到10的素数表B[],其中存放2到10以内的素数*/B[1]=2;B[2]=3;B[3]=5;B[4]=7;/*若A[i]=i是B[]中任一数的倍数,则剔除A[i]*/for(j=1;j<=4;j++)检查A[]所有的数能否被B[j]整除并将能被整除的数从A[]中剔除;-----3.1/*输出A[]中所有没有被剔除的数*/for(i=2;i<=100;i++)若A[i]没有被剔除,则输出之---4.1}对框架中的局部再做

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。