CAIE AS and A Level CS revision - Unit 11 (2nd)

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

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


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

Unit 11 Programming 编程

11.1 Programming Basics 编程基础

  • 大纲要求

CAIE-CS2nd-11.1要求.png


11.1.1 Implement and write pseudocode from a given design presented as either a program flowchart or structured English 从给定的设计中实现和编写伪代码,以程序流程图或结构化英语的形式呈现

  • 【参考9.2.1】。


11.1.2 Write pseudocode statements for: 编写伪代码语句:

the declaration of variables and constants 变量和常量的声明
the assignment of values to variables and constants 给变量和常量赋值
expressions involving any of the arithmetic or logical operators input from the keyboard and output to the console 涉及从键盘输入并输出到控制台的任何算术或逻辑运算符的表达式

  • Constant:常量,指在整个程序中都不会发生改变的数值。程序在一开始声明常量后,在之后的其他位置可以直接引用该常量名,简化了程序且可以同步数值修改。
    • 常量的定义及赋值:

CONSTANT 常量名 = 值


  • Variable:变量,指在整个程序中数值会发生改变的量。【参考9.2.2和9.2.3】
    • 变量的定义:

DECLARE 变量名 : 数据类型

    • 变量的赋值:

变量名 ← 值


  • 算术运算符的伪代码表达:
CAIE-CS2nd-11.1.2-1.png


  • 比较运算符的伪代码表达:
CAIE-CS2nd-11.1.2-2.png


  • 逻辑运算符的伪代码表达:
CAIE-CS2nd-11.1.2-3.png


11.1.3 Use built-in functions and library routines 使用内置函数和库例程

Any functions not given in the pseudocode guide will be provided 将提供伪代码指南中未给出的任何功能
String manipulation functions will always be given 字符串操作函数总会被赋予

  • 常用的内置字符串函数伪代码:
CAIE-CS2nd-11.1.3-1.png
    • Slicing:Python中的切片操作,可以截取序列中的一段内容。程序语言如下:
CAIE-CS2nd-11.1.3-2.png


  • 数字的truncation取整运算:

INT(x : REAL) RETURNS INTEGER


  • 将字符串转换为数字:

STRING_TO_NUM(x : STRING) RETURNS INTEGER //将代表整数的字符转换成整型

STRING_TO_NUM(x : STRING) RETURNS REAL //将代表实数的字符转换成实数型


  • 随机数的生成:
    • 程序语言:
CAIE-CS2nd-11.1.3-3.png


11.2 Constructs 构造

  • 大纲要求

CAIE-CS2nd-11.2要求.png


11.2.1 Use pseudocode to write: 使用伪代码编写:

an ‘IF’ statement including the ‘ELSE’ clause and nested IF statements 一个“IF”语句,包括“ELSE”子句和嵌套的 IF 语句
a ‘CASE’ structure “CASE”结构
a ‘count-controlled’ loop “计数控制”循环
a ‘post-condition’ loop “后置条件”循环
a ‘pre-condition’ loop “前置条件”循环

  • IF…THEN…选择结构:

IF 条件
 THEN //如果条件满足,则执行指令1
  <指令1>
 ELSE //如果条件未满足,则执行指令2
  <指令2>
ENDIF


  • 嵌套IF…THEN…选择结构:

IF 条件
 THEN
  <指令1>
 ELSE
  IF 条件 //嵌套IF语句。可多层嵌套,但程序可读性降低。
   THEN
    <指令2>
   ELSE
    <指令3>
  ENDIF
ENDIF


  • CASE结构:

CASE OF 变量 //根据变量的值,寻找对应的指令操作
 值1 : <指令1>
 值2, 值3 : <指令2>
 值4 TO 值5 : <指令3>
 …
 OTHERWISE <指令n>
ENDCASE


  • FOR…NEXT…结构(‘count-controlled’ loop计数循环):

FOR 变量名 ← 起始值 TO 终值 STEP 步长 //如果是降序,则使用DOWNTO。STEP+步长是选填项。步长为等差量,如果不填则默认为1(降序则为-1)。
  <重复操作指令>
NEXT 变量名


  • REPEAT…UNTIL…结构(‘post-condition’ loop后置条件循环):

REPEAT
  (变量名 ← 变量名 + 1) //如果循环需要完成规定轮数,则必须加该条件
  <重复操作指令>
UNTIL 循环结束条件


  • WHILE…ENDWHILE…结构(‘pre-condition’ loop前置条件循环):

WHILE 循环进行条件 DO
  <重复操作指令>
  (变量名 ← 变量名 + 1) //如果循环需要完成规定轮数,则必须加该条件
ENDWHILE


11.2.2 Justify why one loop structure may be better suited to solve a problem than the others 证明为什么一种循环结构可能比其他循环结构更适合解决问题

  • 如果循环有明确次数,则FOR循环更合适。
  • 如果循环次数不定(结束取决于某种条件),但肯定多于一次,则REPEAT循环更合适。
  • 如果循环次数不定(结束取决于某种条件),且有可能一次也不进行,则WHILE循环更合适。



11.3 Structured Programming 结构化编程

  • 大纲要求

CAIE-CS2nd-11.3要求.png


11.3.1 Define and use a procedure 定义和使用过程

  • Procedure过程的定义:

PROCEDURE 过程名(参数列表)
  <操作指令>
ENDPROCEDURE


  • Procedure过程的引用:

CALL 过程名(变量名1, 变量名2…)


11.3.2 Explain where in the construction of an algorithm it would be appropriate to use a procedure 解释在构造算法的什么地方使用过程是合适的

  • 当一组指令可以完成特定功能时,可以将其进入一个procedure过程中。在主程序之前定义过程后,主程序中就可以使用过程了。(部分程序语言也可以在后面定义过程)


11.3.3 Use parameters 使用参数

A procedure may have none, one or more parameters 一个过程可以没有,一个或多个参数
A parameter can be passed by reference or by value 参数可以通过引用传递,也可以通过值传递

  • Argument:参数(实参),指在程序中实际输入的值,将会由外部的程序通过参数列表的形式传递给过程或函数内部以使用。
  • Parameter:参数(形参),指过程或函数内部的变量,使用范围仅限于其内部。程序里,通常会按照过程或函数的参数列表顺序,将数值或变量名写在调用过程或函数的标识符后的括号里。
    • 过程可以不需要参数,也可以有多个参数。
    • 参数可以是value数值,直接传递给过程内部。也可以是reference引用的地址,将变量传递给过程内部。


11.3.4 Define and use a function 定义和使用函数

  • Function函数的定义:

FUNCTION 函数名 (参数列表) RETURNS 数据类型 //参数列表的写法为“参数 : 数据类型”。主程序中被赋值变量的数据类型应该与函数中定义的数据类型一致
  <操作指令>
  RETURN 变量名 //将该变量对应的数值赋给主程序中引用该函数的变量
ENDFUNCTION


  • Function函数的引用:

变量名 ← 函数名(变量名1, 变量名2…)


11.3.5 Explain where in the construction of an algorithm it is appropriate to use a function 解释在构造算法中什么地方适合使用函数

A function is used in an expression, e.g. the return value replaces the call 表达式中使用函数,例如:返回值替换调用

  • 当一组指令可以完成特定功能且主程序需要返回一个结果时,可以将其进入一个function函数中。在主程序之前定义函数后,主程序中就可以使用函数了。(部分程序语言也可以在后面定义函数)


11.3.6 Use the terminology associated with procedures and functions 使用与过程和功能相关的术语

Including: Procedure / function header, procedure / function interface, parameter, argument, return value 包括:过程/函数头、过程/函数接口、参数、实参、返回值

  • Procedure / function header:过程/函数头,指定义或引用过程/函数的第一行,其中包括了过程/函数的标识符(过程/函数名)、参数列表,函数还需要写明返回值的数据类型。
  • procedure / function interface:过程/函数界面,指将参数从过程/函数外部传递到内部的整个过程。
  • parameter形参和argument实参:【参考11.3.3】
  • return value:返回值,指主程序要求函数返回的数值。


11.3.7 Write efficient pseudocode 编写高效的伪代码

  • 【参考Unit 9、Unit10、Unit11和附录】。