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

说明变量的用途

你明白变量在代码里做什么,可是写出来的句子总是又把它的名字说了一遍。

本页内容
  1. 什么样的用途说明才完整?
  2. 例题
  3. 要提防的错误
  4. 自我检测
  5. 接下来学什么

要说明变量(variable)的用途,请写出它保存什么值、什么时候变化、算法为什么需要它。凡是给出一段短算法,要求你“说明变量的用途”或“解释为什么使用 X”,都在检查你是否真正读懂了它。

这一课是解题说明单元的第一课,建立在适用大纲的伪代码中变量赋值和追踪的基础上。

什么样的用途说明才完整?

好的答案有三个部分。

  1. 保存什么: 变量在任何时刻保存的东西,例如“成绩的累计总和”。
  2. 何时变化: 何时、如何更新,例如“每读到一个 50 分或以上的成绩就加 1”。
  3. 为什么: 它为算法做的事,例如“这样循环结束后才能输出最终个数”。

常见的角色有计数器(counter)、累计总和、到目前为止的最大值或最小值、标志(flag,TRUE 或 FALSE)、循环索引和临时存放。说出角色有帮助,但句子仍然要写明数的是什么、存的是什么。

例题

Total ← 0
FOR Index ← 1 TO 4
   INPUT Mark
   IF Mark >= 50 THEN
      Total ← Total + 1
   ENDIF
NEXT Index
OUTPUT Total

输入的成绩是 62、45、50 和 38。请说明 Total、Mark 和 Index 的用途。

Total。 它是计数器,保存到目前为止输入的成绩中 50 分或以上的个数。它从 0 开始,因为还没有数过任何成绩,只有在 IF 条件为真时才加 1。

Mark。 它保存刚刚输入的那一个成绩。每次新的 INPUT 都会覆盖它,所以每次只测试当前这个成绩。

Index。 它是循环计数器,保存正在处理第几个成绩,从 1 到 4,并让循环正好重复四次。

用数据检查。 62 被计入(Total 为 1)。45 不计。50 被计入,因为测试用的是 >=(Total 为 2)。38 不计。输出是 2,与“50 分或以上的成绩个数”相符。

要提防的错误

空泛的答案只是重复名字或代码:

Total 保存 total。 或者 Total 就是 Total + 1。

这没有提供任何新信息。它没有说明在累计什么,而且这里它其实不是成绩的总和,而是一个个数。

改正:“Total 是计数器,保存已输入成绩中 50 分或以上的个数。它从 0 开始,每当成绩通过测试就加 1,以便最后输出。”

自我检测

1. 说明这段代码中 Largest 的用途。

Largest ← 0
FOR I ← 1 TO 3
   INPUT N
   IF N > Largest THEN
      Largest ← N
   ENDIF
NEXT I
OUTPUT Largest
显示答案

Largest 保存到目前为止输入的最大数字。每当读到更大的数,就用 N 替换它。它从 0 开始,这样第一个正数就会替换它,最后作为答案输出。(如果输入的数全是负数,答案就会错,因为 0 会一直是最大值。)

2. 在下面的交换中,说明为什么需要 Temp。

Temp ← A
A ← B
B ← Temp
显示答案

Temp 暂时保存 A 的原值。第 2 行把 A 覆盖成 B,如果没有 Temp,A 的旧值就丢失了,B 也就拿不到它。例如 A = 3、B = 8 时,Temp = 3,A = 8,B = 3。

3. 一位学生写道:“Found 用来找。”请就这个搜索重写:开始时 Found 设为 FALSE,看到目标时设为 TRUE。

显示答案

Found 是标志。如果在列表中见过目标值,它保存 TRUE,否则保存 FALSE。它从 FALSE 开始,因为还没找到任何东西;出现匹配时变为 TRUE;循环结束后用它来决定输出哪条信息。

接下来学什么

下一步,从说明变量转到为测试辩护:用要求来说明测试用例的理由。受限伪代码追踪训练器能展示每个变量如何变化,帮你描述它的角色。

如果你懂代码,却在书面句子上丢分,我们的老师可以在线上一对一计算机科学补习中和你一起阅读、修改。

常见问题

说明用途的答案应该包含什么?

写出变量保存的值、这个值什么时候变化,以及算法为什么需要它。计数器要写清楚在数什么,总和要写清楚在加什么。包含这三部分的简短答案,通常就能涵盖题目所问。

为什么变量要从 0 或别的值开始?

初始值必须让第一次更新是正确的。总和从 0 开始,因为加上 0 不会改变第一个数。计数器从 0 开始,因为还没有数过任何东西。答案里要写出这个原因,而不是只写数值。

只写“Count 在计数”够吗?

不够。这只是重复名字,没有给出信息。要说明数的是什么,例如“Count 保存到目前为止输入的年龄中 18 岁或以上的个数”。阅卷员要看到你理解它在这个算法中的角色。

资料来源

  1. Cambridge IGCSE Computer Science 0478 syllabus page

更新于:

下一步

如果你的说明在脑子里清楚、写在纸上却含糊,一对一的老师可以和你一起批改句子,并展示完整答案包含哪些内容。

一小时付费试听课,按所安排老师确认的收费,RM80 起。

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

家长:在这里咨询

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