CAIE IGCSE CS revision - Unit 8 (2023)

来自A level and IG Revision Wiki
跳到导航 跳到搜索

【点此返回复习要点目录】


如遇到公式加载异常,请刷新页面!

Unit 8 Programming 编程

8.1 Programming concepts 编程概念

  • 大纲要求

CAIE-IGCS-1.1要求.png

8.1.1 Declare and use variables and constants 声明和使用变量和常量


  • Variables:变量,指在程序运行时可以存储数值的有名称的数据。其内部存储的数值可能会随着程序的进行而发生变化。
    • 注意:为了便于识别各个变量,其名称一般是有特殊含义的,和人类自然语言的称呼有关系,比如Name、Age等。


  • Constants:常量,指在整个程序运行过程中,内部存储的数值不会发生任何变化的有名称的数据。
    • 注意:有时为了区分常量,会采取名称全部大写的表现方式,比如PI=3.14。
    • 注意:设置常量通常是为了便于修改或纠正常量数值。需要修改时,只需要修改最初赋值即可,无需在程序的每一处都进行修改。


  • Declaration:声明,指在程序中定义variable变量或constant常量的类型或数值的行为。
    • 注意:对于有些计算机语言来说,声明这一步是必须书写的(explicit明确的),比如VB语言。而对于有些计算机语言来说,声明这一步可以无需额外书写(implicit隐含的),在赋值时直接默认其数据类型,比如Python语言。
    • 常见语言的declaration声明形式如下图所示:
CAIE-IGCS-8.1.1-1.png


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。
CAIE-IGCS-8.1.2-1.png


8.1.3 Understand and use input and output 理解和使用输入输出


  • Input:输入,指通过键盘或内部文件,将数据传输给程序(将数据值赋给变量)。
    • 注意:为了让用户理解自己需要输入哪些数据,程序应当显示出所需输入的提示。
    • 常见语言的input输入形式如下图所示:
CAIE-IGCS-8.1.3-1.png


  • Output:输出,指通过屏幕或内部文件,将数据展示或保存给用户。
    • 注意:为了让用户理解输出的数据含义,程序应当对输出数据进行一些解释说明。
    • 常见语言的output输出形式如下图所示:
CAIE-IGCS-8.1.3-2.png


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语句形式如下图所示:
CAIE-IGCS-8.1.4b-1.png
CAIE-IGCS-8.1.4b-2.png


    • CASE语句:常见语言的CASE语句形式如下图所示:
CAIE-IGCS-8.1.4b-3.png


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循环形式如下图所示:
CAIE-IGCS-8.1.4c-1.png


    • pre-condition loops:前置条件循环,指WHILE…DO循环。
      • 常见语言的WHILE…DO循环形式如下图所示:
CAIE-IGCS-8.1.4c-2.png


    • post-condition loops:后置条件循环,指REPEAT…UNTIL循环。
      • 常见语言的REPEAT…UNTIL循环形式如下图所示:
CAIE-IGCS-8.1.4c-3.png


8.1.4 (d) Understand and use the concepts of totalling and counting 总计和计数的概念


  • Totalling:计算所有数值的总和。【参考7.4】
    • 常见语言的Totalling形式如下图所示:
CAIE-IGCS-8.1.4d-1.png


  • Counting:对数值的个数进行统计。【参考7.4】
    • 常见语言的Counting形式如下图所示:
CAIE-IGCS-8.1.4d-2.png


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形式如下图所示:
CAIE-IGCS-8.1.4e-1.png


    • Substring:子串,即截取整个字符串当中的某一部分。
      • 常见语言的Substring形式如下图所示:
CAIE-IGCS-8.1.4e-2.png


    • Upper:大写,即将字符串中的所有字母类字符变为其大写形式。
      • 常见语言的Upper形式如下图所示:
CAIE-IGCS-8.1.4e-3.png


    • Lower小写,即将字符串中的所有字母类字符变为其小写形式。
      • 常见语言的Lower形式如下图所示:
CAIE-IGCS-8.1.4e-4.png


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整型)


  • 逻辑运算符:常见语言的逻辑运算符形式如下图所示:
CAIE-IGCS-8.1.4f-1.png


  • 布尔运算符:常见语言的布尔运算符形式如下图所示:
CAIE-IGCS-8.1.4f-2.png


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. 对函数的定义还需要包括其返回值的数据类型


  • 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)过程(无参数):常见语言的过程形式如下图所示:
CAIE-IGCS-8.1.6b-1.png


CAIE-IGCS-8.1.6b-2.png


  • Procedure(with parameters)过程(有参数):常见语言的过程形式如下图所示:
CAIE-IGCS-8.1.6b-3.png


CAIE-IGCS-8.1.6b-4.png


  • Function(with parameters)过程(有参数):常见语言的函数形式如下图所示:
CAIE-IGCS-8.1.6b-5.png


CAIE-IGCS-8.1.6b-6.png


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形式如下图所示:
CAIE-IGCS-8.1.7-1.png


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:注释,指对写的计算机代码进行人类自然语言的解释,用于向其他程序员或自己解释代码的含义。
    • 注意:注释不参与代码的编译。
    • 常见语言的注释形式如下图所示:
CAIE-IGCS-8.1.8-1.png


  • 便于维护的计算机代码应该注意:
    • 注意使用规范的语法表达。
    • 变量名要尽量使用和数据含义相关。
    • 重复的大段代码尽量使用函数或过程表达(简便且便于修改和维护)
    • 注意换行和缩进。
    • 注意增加对代码的注释。


8.2 Arrays 数组

  • 大纲要求

CAIE-IGCS-1.1要求.png

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行数据)。如下图所示:
CAIE-IGCS-8.2.1-1.png


    • 对一维数组的声明格式:需要包含数组名、序列号范围(一组)及所存储数据的数据类型。如下图所示:
CAIE-IGCS-8.2.1-2.png


    • 一维数组中数据的输入:
      • 可以通过循环结构枚举序列号来逐个输入。如下图所示:
CAIE-IGCS-8.2.1-3.png


      • 如果已知全部数据,也可以在声明时直接赋值。如下图所示:
CAIE-IGCS-8.2.1-4.png


    • 一维数组中数据的输出:
      • 通过数组名加序列号的形式能够定位到具体数据,然后用输出语句输出。
      • 如果要输出整个数组,可以通过循环结构枚举序列号来实现。
CAIE-IGCS-8.2.1-5.png


  • Two-dimensional(2D)array:二维数组,指数组的数组,可看作是具有横纵坐标的矩阵。如下图所示:
CAIE-IGCS-8.2.1-6.png


    • 对二维数组的声明格式:需要包含数组名、序列号范围(两组)及所存储数据的数据类型。如下图所示:
CAIE-IGCS-8.2.1-7.png


    • 二维数组中数据的输入:
      • 可以通过两层的嵌套循环结构枚举序列号来逐个输入,通常外层循环代表行,里层循环代表列。如下图所示:
CAIE-IGCS-8.2.1-8.png


      • 如果已知全部数据,也可以在声明时直接赋值,每一行的数值用括号括在一起,每一列用逗号隔开。如下图所示:
CAIE-IGCS-8.2.1-9.png


    • 二维数组中数据的输出:
      • 通过数组名加序列号的形式能够定位到具体数据,然后用输出语句输出。序列号包含了横坐标和纵坐标。
      • 如果要输出整个数组,可以通过两层的嵌套循环结构枚举序列号来实现,通常外层循环代表行,里层循环代表列。
CAIE-IGCS-8.2.1-10.png


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 文件处理

  • 大纲要求

CAIE-IGCS-1.1要求.png

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或类似的指令可以关闭文件。
    • 注意:在文件使用完毕后,必须要关闭文件,以防后续操作出现错误。


  • 常见语言的文件处理代码形式如下图所示:
CAIE-IGCS-8.3.2-1.png
CAIE-IGCS-8.3.2-2.png
CAIE-IGCS-8.3.2-3.png
CAIE-IGCS-8.3.2-4.png