欢迎来到程序设计的世界!
在本章中,我们将一起探索计算机程序的“基本构建模块”。无论你是想编写一个简单的计算器,还是开发下一个热门的电子游戏,你都会用到这些核心概念。你可以把它当作是学习一种新语言的语法——一旦掌握了这些规则,你就可以开始编写属于你自己的数字故事了!如果起步时觉得有点难,请别担心;每个人都是从零开始的,我们会一步步为你拆解。
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...UNTIL 或 DO...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)!
• 命名不当:避免使用像 variable1 或 thingy 这种名称。请改用 user_age 或 total_price。
考试重点总结
1. 能够在任何代码片段中识别出顺序、选择和重复。
2. 理解变量会改变,而常量保持不变。
3. 记住:当你确定重复次数时使用 FOR 循环,不知道次数时使用 WHILE 循环。
4. 务必为变量使用有意义的名称,以保持代码“整洁”。