欢迎来到算法基础!

你好!欢迎踏上 H2 计算机科学(Computing)旅程的第一步。在本章中,我们将探索程序设计的「大脑」:算法(Algorithms)。你可以把算法想象成一份简单的食谱。就像食谱教你如何将鸡蛋和面粉变成蛋糕一样,算法则是教导计算机如何将原始数据处理成有用的结果。如果刚开始觉得有点抽象,别担心——看完这份笔记,你就会发现其实你每天都在使用算法!

1. 逻辑的三大支柱:顺序、选择与迭代

为了控制程序的运行方式,我们使用三个基本的「积木」。你可以将它们组合起来,创造出任何你能想象到的程序!

A. 顺序(Sequence):一步接一步

顺序是最简单的结构。它的意思是计算机会按照指令的先后,从上到下依次执行,除非我们要求它跳过,否则绝不会遗漏任何一行。
例子:准备上学。
1. 起床。
2. 刷牙。
3. 穿上校服。
如果你改变了顺序(例如在洗澡前先穿上校服!),事情就可能会出错。顺序至关重要!

B. 选择(Selection):决策者

选择允许程序根据特定的条件来决定执行哪一条路径。我们通常会使用 IF(如果)、THEN(则)和 ELSE(否则)来处理这种情况。
比喻:雨伞的抉择。
IF 下雨,THEN 带把雨伞。ELSE(如果没下雨),带太阳眼镜。
这让我们的程序变得「聪明」,因为它们可以针对不同的情况作出反应。

C. 迭代(Iteration):循环者

迭代是指重复执行一组指令。计算机在这方面非常出色,因为它们永远不会感到疲倦或厌烦!
例子:吃早餐的谷物片。
当碗里还有谷物片时,继续用勺子吃。一旦碗空了,你就停止。
记忆小撇步:想象一个「跑步机」。你会一直跑步(迭代),直到计时器归零或是你按下停止键(条件)。

快速复习箱:
顺序:按顺序执行指令。
选择:作出决定 (IF)。
迭代:重复执行 (Loops/循环)。

2. 理解并拟定伪代码(Pseudocode)

当我们设计算法时,通常会使用 伪代码。字面上的 "pseudo" 意指「假的」,所以这简直就是「伪造的程序代码」。

为什么要使用它呢?因为真正的编程语言(如 Python)对括号和逗号的要求非常严格。伪代码让我们能够专注于逻辑,而不必担心出现「语法错误(syntax errors)」。

如何写好伪代码:

1. 使用 INPUT 从使用者取得数据。
2. 使用 OUTPUTPRINT 显示结果。
3. 使用 STORE 或箭头符号 \( \leftarrow \) 将数值存入变量中。
4. 使用清晰的名称,例如 total_score,而不是仅用 x

例子:判断考试是否及格的算法。
INPUT mark
IF mark >= 50 THEN
  OUTPUT "你及格了!"
ELSE
  OUTPUT "再接再厉!"
ENDIF

你知道吗? H2 教学大纲中并没有规定伪代码的「官方」规则书!只要你的逻辑清晰且前后一致,就能拿到分数。不过,保持与 Python 相近的逻辑通常是个安全且明智的选择。

重点总结: 伪代码是人类思想与计算机程序之间的桥梁。它是让人阅读的,而不是给机器读的!

3. 模块化方法:分解(Decomposition)

有时候,一个问题太大了,无法一次解决。想象一下有人叫你「造一辆车」。这太让人不知所措了!这就是 分解(Decomposition) 出场的时候了。

分解是将复杂问题拆解成更小、更易于管理的部份(模块)的过程。
现实例子:筹办学校嘉年华。
与其让一个人包办所有事,不如将工作拆解:
• 模块 1:饮食摊位。
• 模块 2:游戏与活动。
• 模块 3:门票销售。
• 模块 4:市场推广。

为什么要使用模块化方法?

易于管理:与一个巨大的程序区块相比,小部份更容易理解。
团队合作:不同的人可以同时处理不同的模块。
易于测试:你可以先测试「饮食摊位」是否运作完美,再进行「游戏」部份的测试。

常见错误:学生通常会尝试一次写完整个程序。如果程序失败,他们会找不到错误出在哪里。记住,一定要先分解!

4. 增量式方法(Incremental Approach)

增量式方法与分解略有不同。它涉及先解决问题的「迷你版本」,然后逐渐添加更多功能,直到解决整个问题为止。

比喻:画肖像画。
首先,你画一个圆圈作为头部(基本版本)。然后你加上眼睛和鼻子(扩展解决方案)。最后,你加上阴影和头发(完整版本)。

步骤流程:

1. 核心:先解决最基本的要求(例如:一个只能进行加法的计算器)。
2. 扩展:增加下一个功能(例如:现在它可以进行减法)。
3. 重复:持续增加,直到满足所有要求。

鼓励一下:如果你的程序第一个版本非常简单,不用担心。即使是世界上最复杂的应用程序,也是从一个小小的「1.0 版本」开始的!

快速对比:
分解:将大东西拆成许多小碎片。
增量:从一个小东西开始,把它越做越大。

章节总结 - 重点笔记

控制流程:使用 顺序(顺序)、选择(IF)和 迭代(循环)来告诉计算机要做什么以及何时做。
伪代码:一种规划程序逻辑的方法,无需担心严格的语言规则。
分解:将大问题拆分成更小的「模块」来处理。
增量式方法:从简单的解决方案开始,逐步构建完整功能。

恭喜你!你已经掌握了算法思维的基础。现在,你已经准备好将自己的想法转化为实际的逻辑了!