CS106A 学习笔记(3):Karel & Java

常见错误(common errors)

  • 无限循环(infinite loop)
  • 差一错误(OBOB:Off By One Bug):还差一件需要做的事情,尽管按逻辑来讲不需要做

注释(comment)

块注释:

/*
 * the block comment
 */

行注释

// the one-liner comment

逐步求解法(stepwise refinement)

从最高阶向下逐步分解,直到分解成计算机能够理解的语言。

  • 自顶向下设计:Top-Down Design
  • 自底向上设计:Bottom-Up Design

算法(algorithm)

算法是一个表示为有限长列表的有效方法。算法应包含清晰定义的指令用于计算函数。

以下是Donald Knuth在他的著作The Art of Computer Programming里对算法的特征归纳:

  • 输入:一个算法必须有零个或以上输入量。
  • 输出:一个算法应有一个或以上输出量,输出量是算法计算的结果。
  • 明确性:算法的描述必须无歧义,以保证算法的实际执行结果是精确地符合要求或期望,通常要求实际运行结果是确定的。
  • 有限性:依据图灵的定义,一个算法是能够被任何图灵完备系统模拟的一串运算,而图灵机只有有限个状态、有限个输入符号和有限个转移函数(指令)。而一些定义更规定算法必须在有限个步骤内完成任务。
  • 有效性:又称可行性。能够实现,算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。

函数名书写规范

驼峰式写法(camel case):全部首字母大写或者除第一个单词外首字母大写

函数分解原则

  • 每个程序/方法解决一个问题
  • 每个方法(method)最好在1-15行之间
  • 定义一个“好”的名字(Good name):名字可以是函数的用途,或是解决了什么问题

虽然程序是由计算机运行的,但归根结底是写给人看的。

EOF

文章标签:

发表评论

SFGZ