跳到正文
IGCSE·Tuition
计算机科学 · 课程

不依赖编程语言来解释算法

你常常写得出代码,但题目要你解释它做什么,话却说不出来。

本页内容
  1. 怎样把它解释好?
  2. 例题
  3. 要小心的错误
  4. 自我检测
  5. 接下来学什么

要不依赖语言来解释算法,用普通的话描述每一步,点明数据和决策,再用伪代码写出同样的步骤。如果之后有人用 Python、Java 或电子表格来实现,这份解释仍然必须是正确的。

这一课把分解、规格、追踪和边界测试合成一个习惯。

怎样把它解释好?

  1. **用一句话说明算法的用途:**输入和输出。
  2. 按顺序列出步骤,每一步以动词开头,并点明变量。
  3. 说明每个决策及其条件,例如”如果新数字比 Smallest 小”。
  4. 说明它如何停止。
  5. 用小数据的追踪来支持你的说明。

避免依赖某种语言的说法,比如”调用 min 函数”。这会把你被要求展示的逻辑藏起来。

例题

在逐个输入的四个数字中,找出最小的一个。

普通步骤:

  1. 输入第一个数字,把它存为 Smallest。
  2. 再重复三次:输入一个数字;如果它比 Smallest 小,就把它存为 Smallest。
  3. 输出 Smallest。

伪代码:

INPUT Number
Smallest ← Number
FOR Count ← 2 TO 4
   INPUT Number
   IF Number < Smallest THEN
      Smallest ← Number
   ENDIF
NEXT Count
OUTPUT Smallest

用 Python 写出的同一逻辑:

smallest = int(input())
for count in range(2, 5):
    number = int(input())
    if number < smallest:
        smallest = number
print(smallest)

用 14、9、21、9 追踪:

CountNumberNumber < SmallestSmallest
开始1414
29真9
321假9
49假9

输出是 9。最后一个 9 并不比 9 小,所以 Smallest 保持不变。列表中最小的数是 9,所以答案正确。

要小心的错误

一个常见的失误,是用一个固定的数字作为 Smallest 的初始值。

错误的起点:Smallest ← 0,数字是 14、9、21、9。

没有任何数字比 0 小,所以输出 0,一个从未输入过的值。

改正的方法是像上面那样,从第一个真实的值开始。普通步骤的解释把这一点说得很清楚:“把第一个数字存为 Smallest”。跳过这一步的解释,让人无从发现这个错误。

自我检测

1. 用普通步骤解释一个算法:数出五个数字中有几个是负数。

Show answer

把 Count 设为 0。重复五次:输入一个数字;如果它小于 0,就给 Count 加 1。五个数字之后,输出 Count。

2. 对输入 −3、4、0、−1、7 追踪下面的算法,并说明它做什么。

Count ← 0
FOR I ← 1 TO 5
   INPUT N
   IF N < 0 THEN
      Count ← Count + 1
   ENDIF
NEXT I
OUTPUT Count
Show answer

Count 起始为 0,−3 之后是 1,4 和 0 之后仍是 1,−1 之后是 2,7 之后仍是 2。输出 2。它数出负数的个数。

3. 把”用 len 函数找出有多少个项目”改写成不依赖语言的步骤。

Show answer

“数项目:把计数器设为 0,每看到一个项目就加 1。“这样描述了逻辑,没有点名任何内置函数。

接下来学什么

设计习惯建立起来之后,继续学习重复结构与数组,再做综合练习。安全 Python 沙盒让你运行上面例子的简短版本,并与你的追踪对照。

听到你的解释,老师能很快发现缺失的步骤,这是我们一对一线上计算机科学补习的一部分。

常见问题

为什么要不用代码来解释算法?

同一个算法可以用许多语言写出来。用普通步骤或伪代码解释,说明你理解的是逻辑,而不只是某一种语言的语法。考试题经常正是这样要求的。

算法和程序有什么区别?

算法是解决问题的一组步骤,与任何语言无关。程序是用某种具体语言对算法的一次实现,计算机可以运行它。

这一课需要会 Python 吗?

不需要。伪代码是主要形式。Python 放在旁边,是让你看到逻辑完全相同,如果你的课程或课堂作业用 Python,这会有帮助。请确认你的考试年份使用哪种记法。

更新于:

下一步

如果你能把想法写成代码,却很难用话说清楚,一对一的老师可以听你的解释,帮你把它整理成清晰的步骤。

一小时付费试听课,按所安排老师确认的收费,RM80 起。 其他费用、时间安排及后续课程,在试听课后由家长与老师直接确认。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

是家长或监护人?在这里咨询

已通过我们的服务帮助 9,000+ 名学生