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刘宇佳 阅读(52) 评论(0) 编辑 收藏 举报