伪代码惯例是大家认可的算法书写方式:赋值用 ←,关键字用大写,代码块用缩进。凡是要求你阅读、补全或编写算法的考试题,都会用到它。
本课是适用大纲的伪代码的基础。要知道你的考试年份适用哪种记法,请看本单元最后一课。
主要惯例有哪些?
Cambridge 伪代码用的是一小组固定模式,把它们当作工具箱来记。
| 用途 | 伪代码 |
|---|---|
| 声明变量 | DECLARE Total : INTEGER |
| 赋值 | Total ← 0 |
| 输入与输出 | INPUT Mark、OUTPUT Total |
| 选择 | IF ... THEN ... ELSE ... ENDIF |
| 计数循环 | FOR Count ← 1 TO 5 ... NEXT Count |
| 前置条件循环 | WHILE ... DO ... ENDWHILE |
| 后置条件循环 | REPEAT ... UNTIL ... |
| 比较 | =、<>、<、>、<=、>= |
三个习惯让答案更易读:关键字用大写,结构内部全部缩进,每个结构都用对应的结束关键字收尾。
示例讲解
写出伪代码:读入三个分数,输出平均值。用 12、15、9 测试。
DECLARE Mark1, Mark2, Mark3 : INTEGER
DECLARE Average : REAL
INPUT Mark1
INPUT Mark2
INPUT Mark3
Average ← (Mark1 + Mark2 + Mark3) / 3
OUTPUT Average
输入 12、15、9 的追踪:
| 行 | Mark1 | Mark2 | Mark3 | Average |
|---|---|---|---|---|
| INPUT 各行之后 | 12 | 15 | 9 | |
| Average ← … | 12 | 15 | 9 | 12 |
总和是 12 + 15 + 9 = 36,36 ÷ 3 = 12,输出 12。再检查一次:12 × 3 = 36,平均值正确。
括号很重要。没有括号的话,这一行只会把 Mark3 除以 3 再加上其他两个,得到 12 + 15 + 3 = 30。
要留意的错误
常见失误是把编程语言的符号带进来。
错误的一行:
Average = (Mark1 + Mark2 + Mark3) / 3在这套惯例里,
=是比较。这一行是在问“两边相等吗”,而不是存入结果。
正确写法是 Average ← (Mark1 + Mark2 + Mark3) / 3。Python 和许多语言确实用 = 来存值,所以这个习惯很容易被带过来。考试要求伪代码时,要有意识地改回 ←。
自我检查
1. 写一行伪代码,把 20 存入名为 Limit 的变量。
显示答案
Limit ← 20
2. 这个循环有什么问题?
FOR Count ← 1 TO 3
OUTPUT Count
显示答案
缺少结束关键字。在缩进的那一行后面加上 NEXT Count,循环就会输出 1、2、3。
3. 用三个分数的例子,10、10、4 的平均值是多少?
显示答案
总和是 24,24 ÷ 3 = 8,输出 8。
接下来学什么
下一步练习正确读每一行:分清赋值与比较的追踪。手工做完追踪后,可以用受限伪代码追踪训练器来核对。
写作风格上的习惯,自己很难察觉。我们线上一对一计算机科学补习的老师可以像考官一样读你的答案,并指出需要改掉的习惯。