- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章软件工程— 编码与语言
第八章 编码和语言的选择; 做为软件工程过程的一个阶段,程序编码是设计的继续。
程序设计语言的特性和程序设计风格会深刻地影响软件的质量和可维护性。
为了保证程序编码的质量,程序员必须深刻理解、熟练掌握并正确地运用程序设计语言的特性。此外,还要求源程序具有良好的结构性和良好的程序设计风格。
;教学内容:;教学目的及要求:;§8.1 编码的目的;§8.2 编码的风格; 1974年,Kernighan 与Plauger在《The Elements of Progranmming Style 》中,把编码风格归结为7个问题,70余条指导原则,下面从控制结构、GOTO语句、代码文档化和输入输出等方面,简述编码风格的要求:;程序设计风格;结构化程序设计主要包括两方面:
在编写程序时,强调使用几种基本控制结构,通过组合嵌套,形成程序的控制结构。尽可能避免使用GOTO语句。
在程序设计过程中,尽量采用自顶向下和逐步细化的原则,由粗到细,一步步展开。;结构化程序设计的主要原则;语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中应前后一致。
严格控制GOTO语句,仅在下列情形才可使用:① 用一个非结构化的程序设计语言去实现一个结构化的构造。② 若不使用GOTO语句就会使程序功能模糊。③ 在某种可以改善而不是损害程序可读性的情况下。;例1 打印A、B、 C三数中最小者程序; 程序1
if ( A B ) goto 120; if ( B C ) goto 110;
100 write ( C ); goto 140;
110 write ( B ); goto 140;
120 if ( A C ) goto 130; goto 100;
130 write ( A );
140 end ; 程序2
if ( A B ) and ( A C ) then
write ( A ) else
if ( A ? B ) and ( B C ) then write ( B ) else write ( C )
endif
endif;例2 用二分法求方程 f (x)=0 在区间[a..b]中的根的程序; f0 = f (a); f1 = f (b); //程序1
if ( f0 * f1 = 0 ) {
x0 = a; x1 = b; for ( i = 1;i = n;i++ ){
xm = ( x0+x1 ) / 2; fm = f (xm); if ( abs (fm) eps ||
abs (x1-x0) eps) goto finish; if ( f0 * fm 0 )
{ x0 = xm; f0 = fm;} else x1 = xm; }
finish:printf (“\n The root of this equation is %d\n”,xm );
}
; finish:printf (“\n The root of this equation is %d\n”,xm );
};单入口,两出口
正常出口是循环达到 n 次,非正常出口是循环中途控制转出到标号 finish 所在位置它不满足结构化的要求
; f0 = f (a); f1 = f (b); //程序2
if ( f0 * f1 = 0 ) {
x0 = a;x1 = b; for ( i = 1;i = n;i++ ) {
xm = ( x0+x1) / 2;fm = f (xm);
if (abs( fm )<eps ||
abs( x1-x0 )<eps) break;
if ( f0 * fm>0) { x0 = xm;f0 = fm;} else x1 = xm;
}
}; 该程序利用了C语言中的一个语句break,但仍然不是结构化的程序,它与程序段1完成的工作相同,由于将转移语句与转出条件的判断联系在一起,可读性好。; f0 = f (a);f1 = f (b); //程序3
if ( f0 * f1 = 0){
x0 = a;x1 = b;i = 1;finished = 0;
您可能关注的文档
最近下载
- 会计报表开发成本审计底稿模板(房产企业).xls VIP
- 语文课前五分钟活动.pptx
- 2025年高考历史试卷(山东卷)附答案解析.docx VIP
- 中国文化古城—西安.-PPT.pptx VIP
- 《西方社会学理论》全套教学课件.ppt
- 第7课 实践出真知 课件 中职高教版哲学与人生.pptx
- 一针疗法之肩周炎.ppt
- 2025中国银行中银国际证券股份有限公司招聘8人笔试模拟试题及答案解析.docx VIP
- 神经介入治疗概述及护理常规.ppt VIP
- 舒伯特第二即兴曲,降E大调 D.899之2 Impromptu No. 2 in E flat major, D. 899, No. 2 Op90 Schubert钢琴谱.pdf VIP
文档评论(0)