20212319刘宇佳

 

2021-2022-1学期 20212319刘宇佳《网络空间安全专业导论》第三周学习总结

低级程序设计语言与伪代码

Pep/9

虚拟机是一种假想的机器,是为了包含我们想展示的真实计算机所具备的重要特性而设计。Pep9具有40条机器语言指令,内存单元由65536字节的存储空间,字长为两字节,有七个寄存器【eg:程序计数器(PC)、指令寄存器(IR)、累加器(A)】。

指令格式

三个字节,第一个为指令说明符,后两个字节为操作数说明符。

第一个字节中,前四位为操作代码,即表述这个操作是做什么。第五位为参与的寄存器(eg:A、B);后三位为寻址模式,000(立即寻址):操作数以数据的形式被利用;001(直接寻址):操作数表示地址,运用地址内的数据。

一些指令:

  • 1100 将操作数(字)载入寄存器
  • 1101 将字节载入寄存器:立即寻址:看第二个字节的数据;直接寻址:看第一个字节表示的地址。
  • 1110 将寄存器中的字存到操作数代表的地址中
  • 1111 将寄存器中的字节存到地址中,前八位会被忽略。
  • 0110 将操作数(或地址)加到寄存器中。
  • 1000 从寄存器中减去操作数。

Pep/9输入设备在地址FC15,输出设备在地址FC16

汇编语言

助记码 操作数,i(d)

其中i表示立即寻址,d表示直接寻址

汇编器指令(伪操作):END、ASCII、WORD、BLOCK。

分支命令:DECI(读入十进制数字,放进操作数位置)、DECO(写操作数、写操作数地址上的十进制数)、STRO(写操作数位置上的字符串)、BR(转到操作数位置)、BRLT(如果累加器小于零,转到操作数位置)、BREQ(若累加器为0,转到操作位置)、CPWA(比较操作数位置和累加器中存储的字。)

汇编语言中的循环:先读循环次数,然后再一个一个输入累加器进行加法

伪代码

变量、赋值、输入/输出、选择、重复

变量:表示存储值或从中提取值的指定位置

赋值:把值存入变量

重复(迭代、循环):只要条件满足,就重复执行一条或多条语句。

if-then选择:条件满足则执行缩进语句,不符合则跳过

if-then-else:条件满足,执行then;不满足,执行else。

伪代码写完之后需要翻译成pep9的语句才能使用

比如说读取输入数据:.ASCII "Enter numberx00"

测试

即执行程序

代码覆盖测试法:用例确保每条语句都能被执行,又叫明箱测试法。

数据覆盖测试法:用例确保包括允许使用的数据的边界值,暗箱测试法

测试计划实现要运行测试计划中列出的所有测试用例,并记录运行结果。

问题求解与算法设计

计算机问题求解包括四个阶段:分析和说明阶段、算法开发阶段、实现阶段、维护阶段。

分析问题-列出主要任务-编写其余部分-根据需要进行重组和改写。

选择算法

if

else if(到达第二个if的方式是不满足第一个)

循环算法

技术控制循环

通过指定过程重复的次数,使用特殊的变量(循环控制变量)。初始化,测试,增量。

while循环被称为前测试循环,永不终止的循环被称为无限循环

事件控制循环

循环中重复的次数是有循环体自身内发生的事件控制循环。while 控制时,事件必须被初始化、测试、更新。选择+控制可以做筛选。

平方根计算

数除以4作为guess初始值,然后设置epsilon为guess平方与原数值的差距,取guess和原数值的平均数。

需要进一步扩展的步骤叫抽象步骤,不需要扩展的叫具体步骤。

数组

项目在集合中的位置叫做索引,通过数组名[position]来访问每一个数

记录

记录是异构项目的有名集合,通过名字单独访问其中的项目,异构集合中的项目不必为同种类型。

搜索算法

顺序搜索

一次查找每一个元素并将其与我们所需要搜索的元素进行比较(像是有两个结束条件的循环)。运用AND(所有表达式都为真时返回值才为TRUE)或OR(所有表达式都为假时返回值才为FALSE)found is false可以运用not简化。

有序数组时,先用length确认项目数

二分检索

在有序数列中查找项目的操作,取中间项对比,1/2、1/4……减少工作量

排序

选择排序

缺陷:需要完整的两个列表的空间,类似于看到最小的然后复制到最前面。

冒泡排序

对相邻两个进行比较,小的放上面,大的放下面。冒泡排序可以通过是否需要发生交换判断是否为有序。

插入排序

每次插入的元素找到合适的位置,和原本该位置的项目比较大小,每次放入后位于相对位置。

递归算法

在某种程度中使用它自己,运用选择语句来确定是否重复。

确定尺寸系数;如果问题涉及的是数值,尺寸系数可能是数值本身。问题涉及结构,尺寸系数可能就是结构的尺寸。

子程序

程序的多个部分使用同一个名称,命名代码出现的地方被称为调用单元。

一种是只执行特定任务的命名代码(语句),另一种不仅执行任务,还返回给调用单元一个值(表达式)。

递归阶乘

尺寸系数=要计算阶乘的数

基本情况:为1

一般情况:N项=Nx(N-1)项

递归二分检索:以第一个数为界,小于第一个数的放左边,大于的放右边,然后交换第一个数和分界数的位置,于是分界数位于正确的位置。

重要思想们

  • 信息隐蔽:对特定分层设计时,只考虑与之相关的细节
  • 抽象
    • 数据抽象(把数据的逻辑视图和实现分开)
    • 过程抽象(把动作的逻辑视图和实现分离)
    • 控制抽象(把控制结构的逻辑视图和实现分离)
  • 事物命名(标识符)
  • 测试

posted on 2021-10-17 09:24  20212319刘宇佳  阅读(43)  评论(0编辑  收藏  举报

导航