第八章程序的编码.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

例如,有一段排序程序

FORI:=1TON-1DOBEGINT:=I;FORJ:=I+1TONDOIFA[J]<A[T]THENT:=J;IFT≠ITHENBEGINWORK:=A[T];A[T]:=A[I];A[I]:=WORK;ENDEND;由于一行中包括了多个语句,掩盖了程序的循环结构和条件结构,使其可读性变得很差。第29页,共74页,星期日,2025年,2月5日FORI:=1TON-1DO//改进布局

BEGIN

T:=I;

FORJ:=I+1TONDO

IFA[J]<A[T]THENT:=J;

IFT≠ITHEN

BEGIN

WORK:=A[T];

A[T]:=A[I];

A[I]:=WORK;

END

END;第30页,共74页,星期日,2025年,2月5日2.程序编写首先应当考虑清晰性程序编写首先应当考虑清晰性,不要刻意追求技巧性,使程序编写得过于紧凑。例如,有一个用C语句写出的程序段:A[I]=A[I]+A[T];

A[T]=A[I]-A[T];

A[I]=A[I]-A[T];第31页,共74页,星期日,2025年,2月5日此段程序可能不易看懂,有时还需用实际数据试验一下。实际上,这段程序的功能就是交换A[I]和A[T]中的内容。目的是为了节省一个工作单元。如果改一下:

WORK=A[T];

A[T]=A[I];

A[I]=WORK;

就能让读者一目了然了。第32页,共74页,星期日,2025年,2月5日3.程序要能直截了当地说明程序员的用意。程序编写得要简单,写清楚,直截了当地说明程序员的用意。例如,

for(i=1;i=n;i++)

for(j=1;j=n;j++)

V[i][j]=(i/j)*(j/i)

除法运算(/)在除数和被除数都是整型量时,其结果只取整数部分,而得到整型量。第33页,共74页,星期日,2025年,2月5日当i<j时,i/j=0

当j<i时,j/i=0

得到的数组当i≠j时

V[i][j]=(i/j)*(j/i)=0当i=j时V[i][j]=(i/j)*(j/i)=1这样得到的结果V是一个单位矩阵。第34页,共74页,星期日,2025年,2月5日写成以下的形式,就能让读者直接了解程序编写者的意图。

for(i=1;i=n;i++)

for(j=1;j=n;j++)

if(i==j)

V[i][j]=1.0;

ELSE

V[i][j]=0.0;第35页,共74页,星期日,2025年,2月5日

第36页,共74页,星期日,2025年,2月5日4.除非对效率有特殊的要求,程序编写要做到清晰第一,效率第二。不要为了追求效率而丧失了清晰性。事实上,程序效率的提高主要应通过选择高效的算法来实现。5.首先要保证程序正确,然后才要求提高速度。反过来说,在使程序高速运行时,首先要保证它是正确的。

第37页,共74页,星期日,2025年,2月5日6.避免使用临时变量而使可读性下降。例如,有的程序员为了追求效率,往往喜欢把表达式 A[I]+1/A[I];写成AI=A[I];X=AI+1/AI;这样将一句分成两句写,会产生意想不到的问题。第38页,共74页,星期日,2025年,2月5日7.让编译程序做简单的优化。8.尽可能使用库函数9.避免不必要的转移。同时如果能保持程序可读性,则不必用GOTO语句。例如,有一个求三个数中最小值的程序: 第39页,共74页,星期日,2025年,2月5日IF(X<Y)

文档评论(0)

xiaolan118 + 关注
实名认证
文档贡献者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档