01、最近有同学问我structured English该如何写,针对问的点集中回答一下。
structured English的确不好写,首先书上能找到的内容非常少,它又不像编程语言那样有严谨的规范,对于我们这些丁是丁卯是卯的理科生来说真的不好把握。
我们先来看看大纲对structured English的要求:
大纲要求我们要会从structured English里写出伪代码,没有明确规定要会写structured English,但是看到红框圈出来的字,上面要求我们要学会写stepwise refinement,就是把大问题分解成若干个小问题,也就是用描述的方式进行分解,再下一句就是logic statements to define parts of an algorithm solution,还是需要写structured English的。
在9618近4年的真题里,有一道题明确要求写structured English。
02、再看书上对它的描述
总而言之就是要用英文句子写算法。
书上提供的写法建议如下:
但是我们还是没有直观的感受。
根据历年真题所有出现的关于structured English的题目,我们总结了如下书写方法:
structured English书写方法
1 列举所用到到变量,该初始化需要初始化Initialise(这一步很多人容易忘记)
2 列出数据结构(需要数组还是record ,还是文件)
3 确定程序结构
循环repeat from step ……
选择结构
顺序结构
如果是文件,需要描述打开、读取和关闭文件
4 描述操作,如对比,赋值Set to,存储
特别注意“prompt”,就是题目要求在写代码时需要提醒用户的信息
对照以上四步,基本一道题就没有扣分的点了。
以上是写structure English的四要点,最近和许同学交流,发现他在备考中自己总结的细节非常好,在征求他同意后和大家分享:
//
The techniques of structured English
例如你要用while循环可以这么说
set a conditional loop, repeating until 条件达成
如果要用for循环则不一样
set a counted-controlled loopto iterate through 对象
打开文件
open file in read/write/append mode
关闭文件
直接就是close the file
给变量赋值:
加:calculate the new value of C by adding A to B
减:calculate the new value of C by subtracting A from B
乘:calculate the new value of C by multiplying A by B
除:calculate the new value of C by dividing A by B
1.连接两个string
obtainthe new string by concatenating A with B
assign the new string to Variable
2.初始化
initialize A to B
if就照常写就好了
基本思路就是先写个伪代码的草稿在旁边然后
按着步骤一步步来,但可以分为几个大部分
1.declare 所有需要的variable或数据结构之类的
2. 按照上面所给的语言翻译从伪代码翻译过来就好了(如果过程出现function的使用的话,就写use the function to obtain __然后加个小括号写出那个function 。eg use the function(INT()) to obtain the value of the whole number part of the digit
3.如果有end while,next i,啥的,一定要记得加after the loop(这会单独算作一点)
4. 所有ADTS的description在p2的背记资料上都有,有一点使用free list的在我的错题本上,这个直接背下来考试直接誊写上去然后就好了。
5.有时候有的题目还得你结合考题本身的内容,只要在描述时扯上点边就好了
真题演练时间
拿起笔来试试吧,参考答案如下: