学习代码优化

看了代码大全  中间有关控制流程语句的篇章.觉得里面有几点讲的确实挺不错的..记录一下
17.1布尔表达式

布尔表达式简化方法:
    
    1把复杂的测试条件用中间的布尔变量变成几个部分..
    2把复杂的表达式写成一个布尔函数
   3.用决策表代替复杂的测试条件
增加可读性:
   1.在IF语句中..把条件从否定形式变成肯定形式.再把IF和ELSE语句后面跟着的代码对换
   2. 应用Demorgen定律去简化否定形式的判断条件
      初始表达式                 相应表达式
    not A and not B         not(A or  B)
    not  A and B              not(A or not B)
    A and B                     not(not A and not B)
  not A  or not B           not(A and B)
 3.用括号使布尔表达式清晰
布尔表达式的运行:些语言先计算各个分量的值.然后合起来计算整个式子的值....另一些语言的编译程序则采用"短路"算法..只需计算     部分的值...也就是说如果某部分的值能够确实整个式子的值.那就不再继续往下运算...如C和PasCal就是采用"短路"算法.

17.2复合语句
    对于IF这种要尽量避免三层以上的嵌套 ,程序的可读性会大大的降低.简化方法如下
  1.通过重新编写部分测试条件来减少IF嵌套
  2.把IF嵌套变成ELSE语句
  3.把深层嵌套的语句转换成一个子程序
  4.重新生成深层嵌套代码
17.5 结构化编程
结构化编程有三个方面:顺序编程.选择..重复
    1.结构化编程不是缩排编写的方法,这种方法对程序的结构没有好处
   2.结构化的编程不是自上而下的设计..这只是一些细节上面的问题
   3.结构化编程不是节约时间的技巧

       个人认为,结构化编程只是针对于子函数代码的要求..面向对象是在架构层面上对系统的要求..而结构化编程是对于一个子函数代码的要求..如必须单入单出..一种程序只能有一个进入口.同时也只能有一个出口..像一个需要返回值的函数..如果存在太多的return语句,..这会大影响到程序的可读性..这时候应该建立一个临时变量..将结果赋值勤给它..然后再返回这个临时变量的值

17.7控制结构和复杂性
      1.计算程序复杂性的方法:
          从1 开始一直往下通程序.碰到if,while and or,for等关键字或同类关键字需要加1..case每一种情况加1.如果没有缺省情况再加1..这样如果计数在1-5之间.则说明程序的可读性非常好..如果在5-10则说明要去简化..如果10 以上则要把部分代码写成子程序并在原程序中调用.
 



              
 

  

   

你可能感兴趣的:(编程,算法,pascal)