CAIE IGCSE CS revision - Unit 8 (2023)
如遇到公式加载异常,请刷新页面!
Unit 8 Programming 编程
8.1 Programming concepts 编程概念
- 大纲要求
8.1.1 Declare and use variables and constants 声明和使用变量和常量
- Variables:变量,指在程序运行时可以存储数值的有名称的数据。其内部存储的数值可能会随着程序的进行而发生变化。
- 注意:为了便于识别各个变量,其名称一般是有特殊含义的,和人类自然语言的称呼有关系,比如Name、Age等。
- Constants:常量,指在整个程序运行过程中,内部存储的数值不会发生任何变化的有名称的数据。
- 注意:有时为了区分常量,会采取名称全部大写的表现方式,比如PI=3.14。
- 注意:设置常量通常是为了便于修改或纠正常量数值。需要修改时,只需要修改最初赋值即可,无需在程序的每一处都进行修改。
- Declaration:声明,指在程序中定义variable变量或constant常量的类型或数值的行为。
- 注意:对于有些计算机语言来说,声明这一步是必须书写的(explicit明确的),比如VB语言。而对于有些计算机语言来说,声明这一步可以无需额外书写(implicit隐含的),在赋值时直接默认其数据类型,比如Python语言。
- 常见语言的declaration声明形式如下图所示:
8.1.2 Understand and use the basic data types 理解和使用基本数据类型
• Including: 包括:
- integer整数型
- real实数型
- char字符型
- string字符串型
- Boolean布尔型
- Data types:数据类型,指变量或常量中所存储的数据的形式,是重要的数据属性之一。常见的数据类型如下:
- Integer:整数型。数据是数学中的整数,没有小数点。比如25、-36等。
- real实数型。数据是数学中的实数,可能包含小数点。比如25.0、-36.5等。
- char字符型。数据是单个字符符号。比如“F”、“2”等。
- string字符串型。数据是一组字符符号(可能是1个或多个)。比如“ABCD”、“d8U*”等。
- Boolean布尔型。数据是True或False。
8.1.3 Understand and use input and output 理解和使用输入输出
- Input:输入,指通过键盘或内部文件,将数据传输给程序(将数据值赋给变量)。
- 注意:为了让用户理解自己需要输入哪些数据,程序应当显示出所需输入的提示。
- 常见语言的input输入形式如下图所示:
- Output:输出,指通过屏幕或内部文件,将数据展示或保存给用户。
- 注意:为了让用户理解输出的数据含义,程序应当对输出数据进行一些解释说明。
- 常见语言的output输出形式如下图所示:
8.1.4 (a) Understand and use the concept of sequence 理解和使用顺序的概念
- Sequence:顺序,指程序按照从上到下的次序依次执行相关语句。
- 注意:执行程序时,大多数时间是按照sequence顺序进行的。
8.1.4 (b) Understand and use the concept of selection 理解和使用选择的概念
• Including: 包括:
- IF statements IF语句
- CASE statements CASE语句
- Selection:选择,指程序从此处发生分歧,如果满足某一条件则执行该条件后续的操作,如果满足另一条件则执行另一条件后续的操作。【参考7.2(c)】
- IF语句:常见语言的IF语句形式如下图所示:
- CASE语句:常见语言的CASE语句形式如下图所示:
8.1.4 (c) Understand and use the concept of iteration 理解和使用迭代的概念
• Including: 包括:
- count-controlled loops计数控制循环
- pre-condition loops前置条件循环
- post-condition loops后置条件循环
- Iteration:迭代(循环),指反复执行某一部分的代码。【参考7.2(c)】
- count-controlled loops:计数控制循环,指FOR…NEXT循环。
- 常见语言的FOR…NEXT循环形式如下图所示:
- count-controlled loops:计数控制循环,指FOR…NEXT循环。
- pre-condition loops:前置条件循环,指WHILE…DO循环。
- 常见语言的WHILE…DO循环形式如下图所示:
- pre-condition loops:前置条件循环,指WHILE…DO循环。
- post-condition loops:后置条件循环,指REPEAT…UNTIL循环。
- 常见语言的REPEAT…UNTIL循环形式如下图所示:
- post-condition loops:后置条件循环,指REPEAT…UNTIL循环。
8.1.4 (d) Understand and use the concepts of totalling and counting 总计和计数的概念
- Totalling:计算所有数值的总和。【参考7.4】
- 常见语言的Totalling形式如下图所示:
- Counting:对数值的个数进行统计。【参考7.4】
- 常见语言的Counting形式如下图所示:
8.1.4 (e) Understand and use the concept of string handling 理解和使用字符串处理的概念
• Including: 包括:
- length长度
- substring子串
- upper大写
- lower小写
• The first character of the string can be position zero or one 字符串的第一个字符可以是位置零或一
- String handling:字符串处理,指对字符串类型的数据进行各种形式的操作。
- Length:字符串长度,即统计该字符串中有多少个字符。
- 常见语言的Length形式如下图所示:
- Length:字符串长度,即统计该字符串中有多少个字符。
- Substring:子串,即截取整个字符串当中的某一部分。
- 常见语言的Substring形式如下图所示:
- Substring:子串,即截取整个字符串当中的某一部分。
- Upper:大写,即将字符串中的所有字母类字符变为其大写形式。
- 常见语言的Upper形式如下图所示:
- Upper:大写,即将字符串中的所有字母类字符变为其大写形式。
- Lower小写,即将字符串中的所有字母类字符变为其小写形式。
- 常见语言的Lower形式如下图所示:
- Lower小写,即将字符串中的所有字母类字符变为其小写形式。
8.1.4 (f) Understand and use arithmetic, logical and Boolean operators 理解和使用算术、逻辑和布尔运算符
• Arithmetic, limited to: 算术运算符,仅限于:
- + 加号
- - 减号
- / 除号
- * 乘号
- ^ (raised to power of) 幂
- MOD 求余
- DIV 整除
• Logical, limited to: 逻辑运算符,仅限于:
- = 等于
- < 小于
- <= 小于等于
- > 大于
- >= 大于等于
- <> (not equal to) 不等于
• Boolean, limited to: 布尔运算符,仅限于:
- AND 与
- OR 或
- NOT 非
- 算术运算符:常见语言的算术运算符形式如下表所示:【参考8.1.7】
Operator | Action | Python | Visual Basic | Java |
---|---|---|---|---|
+ | Add 加 | + | + | + |
- | Subtract 减 | - | - | - |
* | Multiply 乘 | * | * | * |
/ | Divide 除 | / | / | / |
^ | Raise to the power of 幂 | ** | ^ | import java.lang.Math;
Math.pow(x,y) |
MOD | Remainder operation 求余 | % | mod | % |
DIV | Integer division 整除 | // | \ | /(被除数和除数都是integer整型) |
- 逻辑运算符:常见语言的逻辑运算符形式如下图所示:
- 布尔运算符:常见语言的布尔运算符形式如下图所示:
8.1.5 Understand and use nested statements 理解和使用嵌套语句
• Including nested selection and iteration 包括嵌套选择和迭代
• Candidates will not be required to write more than three levels of nested statements 考生无需编写超过三层的嵌套语句
- Nested statements:嵌套语句,指在选择或循环语句中再次使用选择或循环语句。【参考7.2(c)】
8.1.6 (a) Understand what is meant by procedures, functions and parameters 了解过程、函数和参数的含义
- Procedure:过程,指使用一个名称指代的一组程序代码,这些代码会在程序内被反复使用,但可能没有返回数值。
- 注意:不同的计算机语言中,过程的表示形式不同。Python中使用void function、VB中使用subroutine、Java中使用method来表示过程。
- Function:函数,指使用一个名称指代的一组程序代码,这些代码会在程序内被反复使用,有返回数值。
- 注意:不同的计算机语言中,函数的表现形式不同。Python和VB中使用function、Java中使用带返回值的method来表示函数。
- Header:过程或函数的头部,指对过程或函数进行定义声明时的第一行。
- Header包含的内容:
- The name of the procedure or function. 过程或函数名
- Any parameters passed to the procedure or function, and their data type. 过程或函数所包含的参数列表及其数据类型
- The data type of the return value for a function. 对函数的定义还需要包括其返回值的数据类型
- Header包含的内容:
- Parameter:形式参数(形参),指在过程或函数中的header头部需要声明的,用于接受从主程序中传递而来的argument实际参数的值的变量。(相当于变量名)
- Argument:实际参数(实参),指从主程序中传递入过程或函数中的实际数值。
- 注意:实参的数据类型应与过程或函数中声明的形参数据类型相匹配。
8.1.6 (b) Define and use procedures and functions, with or without parameters 定义和使用过程和函数,带或不带参数
• Procedures and functions may have up to two parameters 过程和函数最多可以有两个参数
- Procedure(without parameters)过程(无参数):常见语言的过程形式如下图所示:
- Procedure(with parameters)过程(有参数):常见语言的过程形式如下图所示:
- Function(with parameters)过程(有参数):常见语言的函数形式如下图所示:
8.1.6 (c) Understand and use local and global variables 理解和使用局部和全局变量
- Global variable:全局变量,指在程序的任何位置都可以读写和操作的变量。
- Local variable:局部变量,指仅在程序的某一部分中(比如过程或函数)使用的变量。离开了该部分,该类型的变量将无法定位或引用。
8.1.7 Understand and use library routines 理解和使用库例程
• Including: 包括:
- MOD求余
- DIV整除
- ROUND四舍五入
- RANDOM随机数
- library routines:库例程,指已经完全测试好,随时都能使用的过程或函数。这些程序代码已经被证明是没有错误的,作为标准代码存入数据库,供程序员们直接使用。
- 常见语言的MOD、DIV、ROUND和RANDOM形式如下图所示:
8.1.8 Understand how to create a maintainable program 了解如何创建可维护的程序
• Including appropriate use of: 包括适当使用:
- meaningful identifiers有意义的标识符
- the commenting feature provided by the programming language编程语言提供的注释功能
- procedures and functions过程和函数
- relevant and appropriate commenting of syntax相关和适当的语法注释
• Use meaningful identifiers for: 使用有意义的标识符:
- variables变量
- constants常量
- arrays数组
- procedures and functions过程和函数
- Comments:注释,指对写的计算机代码进行人类自然语言的解释,用于向其他程序员或自己解释代码的含义。
- 注意:注释不参与代码的编译。
- 常见语言的注释形式如下图所示:
- 便于维护的计算机代码应该注意:
- 注意使用规范的语法表达。
- 变量名要尽量使用和数据含义相关。
- 重复的大段代码尽量使用函数或过程表达(简便且便于修改和维护)
- 注意换行和缩进。
- 注意增加对代码的注释。
8.2 Arrays 数组
- 大纲要求
8.2.1 Declare and use one-dimensional (1D) and two-dimensional (2D) arrays 声明和使用一维 (1D) 和二维 (2D) 数组
- Array:数组,指存储着有限个数据类型相同的变量的序列。
- 注意:数组拥有一个数组名,是整个序列的变量名。对内部每个数据的引用需要在数组名写清楚其系列号。
- 对数组的引用:arrayname[index]。
- 数组的类型:
- one-dimensional(1D)array一维数组
- two-dimensional(2D)array二维数组
- one-dimensional(1D)array:一维数组,指以单纯的排序结构排列的结构单一的数组(仅有1列或1行数据)。如下图所示:
- 对一维数组的声明格式:需要包含数组名、序列号范围(一组)及所存储数据的数据类型。如下图所示:
- 一维数组中数据的输入:
- 可以通过循环结构枚举序列号来逐个输入。如下图所示:
- 一维数组中数据的输入:
- 如果已知全部数据,也可以在声明时直接赋值。如下图所示:
- 一维数组中数据的输出:
- 通过数组名加序列号的形式能够定位到具体数据,然后用输出语句输出。
- 如果要输出整个数组,可以通过循环结构枚举序列号来实现。
- 一维数组中数据的输出:
- Two-dimensional(2D)array:二维数组,指数组的数组,可看作是具有横纵坐标的矩阵。如下图所示:
- 对二维数组的声明格式:需要包含数组名、序列号范围(两组)及所存储数据的数据类型。如下图所示:
- 二维数组中数据的输入:
- 可以通过两层的嵌套循环结构枚举序列号来逐个输入,通常外层循环代表行,里层循环代表列。如下图所示:
- 二维数组中数据的输入:
- 如果已知全部数据,也可以在声明时直接赋值,每一行的数值用括号括在一起,每一列用逗号隔开。如下图所示:
- 二维数组中数据的输出:
- 通过数组名加序列号的形式能够定位到具体数据,然后用输出语句输出。序列号包含了横坐标和纵坐标。
- 如果要输出整个数组,可以通过两层的嵌套循环结构枚举序列号来实现,通常外层循环代表行,里层循环代表列。
- 二维数组中数据的输出:
8.2.2 Understand the use of arrays 理解数组的使用
• Including the use of variables as indexes in arrays 包括使用变量作为数组中的索引
• The first index can be zero or one 第一个索引可以是0或1
- 数组使用注意事项:
- 计算机语言中,数组的第一个序号通常是0,但也可以自行从1开始使用。
- 数组在使用前注意初始化。
8.2.3 Write values into and read values from an array using iteration 使用迭代向数组写入值和从数组读取值
• Including nested iteration 包括嵌套迭代
- 【参考8.2.1】。
8.3 File handling 文件处理
- 大纲要求
8.3.1 Understand the purpose of storing data in a file to be used by a program 理解将数据存储在文件中以供程序使用的目的
- File handling:文件处理,指存储在计算机中可以反复使用的数据集合。
- 使用文件的好处:
- 内容可以长期保存,而非像键盘输入那样关闭程序后数据就消失。
- 可以直接使用从数据网站上下载的数据而无需一个个输入程序。
- 可以及时对之前输入错误的数据进行修改。
- 使用文件的问题:
- 如果是输出文件,可能存在输入数据变化但输出文件未能及时更新的问题(没有重新运行程序以刷新输出文件导致)。
- 数据长期保存会占据硬盘空间。
- 程序内读入的数据类型发生变化时,输入文件可能没有及时更新。
- 使用文件的好处:
8.3.2 Open, close and use a file for reading and writing 打开、关闭和使用文件进行读写
• Including: 包括:
- read and write single items of data读写单项数据
- read and write a line of text 读写一行文本
- 打开文件:使用含有OPEN或类似的指令可以打开文件。
- 注意:在使用文件进行操作前,必须要打开文件,否则会出现程序错误。
- 读取文件:使用含有FOR READ或类似的指令可以打开文件进行读取。
- 注意:此时该文件是只读的,无法执行写入的操作,否则会出现程序错误。必须先关闭文件才能执行其他操作。
- 写入文件:使用含有FOR WRITE或类似的指令可以打开文件进行写入。
- 注意:此时该文件是只写的,无法执行读取的操作,否则会出现程序错误。必须先关闭文件才能执行其他操作。
- 关闭文件:使用含有CLOSE或类似的指令可以关闭文件。
- 注意:在文件使用完毕后,必须要关闭文件,以防后续操作出现错误。
- 常见语言的文件处理代码形式如下图所示: