1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编写程序.ppt

8.2 良好的编程习惯 程序员编写的代码除了交给计算机运行外,还必须让其他程序员或设计人员能够看懂。如果程序代码的可读性好,则调试和维护的成本就可以大幅度降低,同时可以减小程序运行期间软件失效的可能性,提高程序的可靠性。 对于代码编写而言,要求程序具有良好的结构和风格。 8.2.1结构化程序设计原则 尽量使用语言提供的基本控制结构,即顺序结构、选择结构和重复结构。 利用块机制将程序组织成容易识别的块,每块只有一个入口和一个出口。 复杂结构应该用基本控制结构组合或嵌套实现。 对于语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中应前后一致 严格控制GOTO语句。 8.2.2自顶向下、逐步细化 在详细设计和编码阶段,还应当采取自顶向下、逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而翻译成一系列用某种程序设计语言写成的程序。 [例3] 用筛选法求100以内的素数。具体做法就是从2到100中去掉2,3,…,9,10的倍数,剩下的就是100以内的素数。 为了解决这个问题,可先按程序功能写出一个框架。 main( ) { 建立2到100的数组A[ ],其中A[i]= i; ------1 建立2到10的素数表B[ ],存放2到10以内素数; ------2 若A[i] = i是B[ ]中任意一个数的倍数,则剔除A[i]; ------3 输出A[ ]中所有没有被剔除的数; ------4 } 8.2.3程序设计风格 1)基本要求 2)可读性要求 3)正确性与容错性要求 4)可移植性要求 5)输入和输出要求 6)重用性要求 7)面向对象的程序设计风格 1)基本要求 程序结构清晰且简单易懂,单个函数的行数一般不要超过 100行(特殊情况例外)。 算法设计应该简单,代码要精简,避免出现垃圾程序。 尽量使用标准库函数(类方法)和公共函数(类方法)。 最好使用括号以避免二义性。 2)可读性要求?注释 程序头,函数头说明:程序标题,该模块功能说明,主要算法说明;接口说明:调用形式,参数描述;子程序清单,有关数据的说明;模块位置:在哪个源文件中,隶属于哪一个软件包;开发历史:包括模块设计者,复审者,复审日期,修改日期及有关说明等 主要变量(结构、联合、类或对象):含义的注释。 处理过程的每个阶段和典型算法前都有相关注释说明,但是不要对每条语句注释。 应保持注释与代码完全一致。 2)可读性要求?格式 程序格式清晰:一行只写一条语句,一个程序如果写得密密麻麻、分不出层次,是很难看懂的。利用空格、空行和缩进显示程序的逻辑结构,缩进量统一为4个字节。 对于嵌套的循环和分支程序,层次不要超过五层。 (A-17)ANDNOT(B=49)ORC 写成 (A-17) AND NOT (B= 49) OR C 2)可读性要求?程序本身 语句力求简单、清晰,不要片面追求效率,程序编写得过于紧凑,使语句复杂化。 DO 5 I=1,N DO 5 J=1 ,N 5 V(I,J)=(I/J)*(J/I) V是一个N×N矩阵,当I≠J时,V(I,J)=0;当I=J时,V(I,J)=1。这个程序构思巧妙,但 不易理解。如果改成下面的形式,读者很容易了解程序的意图: DO 5 I=1,N DO 5 J=1,N IF(IJ) THEN V(I,J)=1.0 ELSE V(I,J)=0.0 ENDIF 5 CONTINUE 2)可读性要求?程序本身(续) 编程时尽可能使用已有的库函数。 简单变量的运算速度比下标变量的运算要快,程序员可能把语句: X=A[I]+1/A[I] 写成 AI= A[I]; X=AI+1/AI 因为不必访问数组的下标表量,程序运行效率高,但把一个计算表达 式拆成了多个,增加了理解的难度。一旦将来修改可能会改变这几 行代码的顺序或在其间插入其它语句,容易引入新的错误。 2)可读性要求?程序本身(续) 尽量用公共过程或子程序代替具有独立功能的重复代码段,但是如果不具有独立功能的代码不要这样做。 使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。 尽量使用三种基本控制结构编写程序,使用IF THEN ELSE结构实现分支;使用DO UNTIL或DO WHILE来实现循环。 2)可读性要求?程序本身(续) 避免采用过于复杂的条件测试,少

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档