欢迎来到程序设计的世界!

在本章中,我们将一起探索计算机程序的“基本构建模块”。无论你是想编写一个简单的计算器,还是开发下一个热门的电子游戏,你都会用到这些核心概念。你可以把它当作是学习一种新语言的语法——一旦掌握了这些规则,你就可以开始编写属于你自己的数字故事了!如果起步时觉得有点难,请别担心;每个人都是从零开始的,我们会一步步为你拆解。


1. 三大支柱:顺序、选择与重复

世界上所有的程序都是由这三个主要原则构成的。你可以把它们想象成你对机器人发出的“指令”:

顺序 (Sequence)

这是最简单的一个!它意味着计算机会按照顺序(从上到下)执行你给予的指令。如果你改变了顺序,程序可能会出错。
例子:泡茶时,你必须把水烧开,才能倒出来!

选择 (Selection)

这让程序能够做出决策。计算机会检查一个条件(是真还是假?),然后决定走哪条路。我们通常会使用 IF 语句来实现这一点。
类比:如果下雨,那么就带伞。否则,就把它留在家里。

重复 (Iteration)

计算机非常擅长一遍又一遍地做同一件事,而且永远不会感到厌倦。这就叫做循环 (loop)
例子:搅拌鸡蛋,直到变得蓬松为止。

快速复习:
顺序 (Sequence):步骤的顺序。
选择 (Selection):进行选择。
重复 (Iteration):重复执行任务。


2. 存储数据:变量与常量

要完成任何有意义的工作,程序需要能够“记住”信息。我们为此使用“容器”。

变量 (Variables)

变量是一个具名的内存位置,存储的数据在程序执行过程中可以改变
想象一下:游戏中的“分数”。它从 0 开始,随着你游玩而不断增加。

常量 (Constants)

常量是一个具名的内存位置,存储的数据在程序开始后无法改变
想象一下:\( \pi \) 的值 (3.14) 或者一场比赛中玩家的最大人数。

为什么要使用名称而不是直接用数字?

我们使用有意义的标识名称(例如用 player_health 而不是只用 h),是因为:
1. 这让代码对人类来说更容易阅读和理解。
2. 在未来修改代码时,可以更轻松且减少错误。

你知道吗? 为“税率”之类的东西使用常量,比到处输入 0.2 这个数字要安全得多。如果税率变动了,你只需要在代码最上方更改一个地方就可以了!


3. 把数据装进盒子:赋值 (Assignment)

赋值是将一个数值赋予给变量或常量的过程。在大多数编程语言和伪代码 (pseudo-code) 中,我们使用 \( = \) 或 \( \leftarrow \) 符号。
例子:\( Score \leftarrow 10 \) 意味着我们把数字 10 放入名为 Score 的盒子里。


4. 进入循环:重复的类型

AQA 要求你掌握两种主要的重复代码的方法:

确定性重复 (Definite Iteration / 计数控制)

当我们执行循环前,已经明确知道它需要重复多少次时,就会使用这种方式。我们通常会使用 FOR 循环。
例子:在操场上跑 10 圈。(你知道跑完 10 圈就会停下来)。

不确定性重复 (Indefinite Iteration / 条件控制)

当我们不知道循环会重复多少次时,就会使用这种方式。它会一直执行,直到满足某个条件为止。
条件在开头: WHILE 循环。它会先检查规则。如果规则不符合,循环可能一次都不会执行!
条件在结尾: REPEAT...UNTILDO...WHILE 循环。这些循环总是会至少执行一次,因为它们先执行任务,然后才检查规则。

记忆小撇步:
FOR固定 (fixed) 的(你知道次数)。
WHILE等待 (waiting) 的(等待条件改变)。


5. 嵌套结构:结构中的结构

有时你需要将一个结构放入另一个结构中,这称为嵌套 (nesting)

嵌套选择

在 IF 语句中再嵌入一个 IF 语句。
例子:如果是周末……那么(如果天气晴朗……就到户外去)。

嵌套重复

在一个循环中再嵌入另一个循环。
类比:想象时钟。时针走动一次,但在那一小时内,分针必须重复走动 60 次!


6. 子程序 (Subroutines: Procedures and Functions)

子程序是你主程序内的一个具名的“迷你程序”。与其将相同的 20 行代码写上五次,不如将其写一次,命名后,在需要时随时“调用”它。

过程 (Procedures):执行一个任务(例如 print_header)。
函数 (Functions):执行一个运算并将结果传回 (return) 给你(例如 calculate_tax)。


常见错误提示

变量与常量:不要试图在代码中修改常量的值!计算机会报错。
无穷循环:如果你使用不确定性循环 (WHILE) 但忘了在循环内修改变量,程序将会永远执行下去并死机。一定要确保“条件”最终能变为假 (false)!
命名不当:避免使用像 variable1thingy 这种名称。请改用 user_agetotal_price


考试重点总结

1. 能够在任何代码片段中识别出顺序、选择和重复
2. 理解变量会改变,而常量保持不变。
3. 记住:当你确定重复次数时使用 FOR 循环,不知道次数时使用 WHILE 循环。
4. 务必为变量使用有意义的名称,以保持代码“整洁”。