20212322《网空导论》第三周学习总结
第六章:低级程序设计语言与伪代码
- 计算机操作
首先我们重温一下计算机的定义:
计算机是能够存储、检索和处理数据的可编程电子设备。
那么因为数据和操作数据在指令逻辑上是相同的,它们存储在相同的地方。要改变计算机对数据的处理,只需要改变指令即可。控制单元执行的指令能够把数据存储到机器的内存当中,在机器内存中检索数据,在算术/逻辑单元中以某种方式处理数据。在机器层,处理涉及在数据值上执行算术和逻辑操作。
2计算机语言
计算机真正执行的程序设计指令是用机器语言
每种处理器都有自己专用的机器指令集合,这些指令是处理器真正能够执行的指令。
但是事实上目前几乎没有程序是用机器语言编写的,大多数程序是用高级语言编写的,然后再翻译成机器语言。
3虚拟机
虚拟机:为了模拟真实机器的重要特征而设计的假想机器
Pep/9的基本特性
Pep/9有7个寄存器,在这里重点研究三个。
①程序计数器 ,其中包含下一条即将被执行的指令的地址。
②指令寄存器,其中包含正在被执行的指令的一个副本。
③累加器,用来存储数据和运算的结果。
存储器的地址本身并不存储在存储器中,它们只是其中独立字节的名字。当涉及内存中某一个特定的字节时,实际使用它的地址替代的。
一条指令由两部分组成,即八位的指令说明符和十六位的操作数说明符。因此Pep/9的指令在长度上是1字节或3字节,取决于是否需要用操作数说明符。
指令说明符说明了要执行什么操作和如何解释操作数的位置。操作数说明符存放的是操作数本身或者操作数的地址。有些指令没有操作数说明符。
操作代码长度从4位到8位不等,3位的寻址模式说明符表示了怎样解析指令中的操作数部分。
如果寻址模式是000,那么指令的操作数说明符中存储的就是操作数。这种寻址模式叫立即寻址
如果寻址模式是001,那么操作数说明符中存储的事操作数所在的内存地址名称。这种寻址模式叫直接寻址
没有操作数的指令称为一元指令,没有操作数说明符,也就是说它的长度是1字节。
4. 创建和运行汇编语言程序的步骤
选择汇编器,使用助记码编写程序,适当添加注释和标签增加可读性,选择“运行源代码”。
-
区分给汇编器的指令和要翻译的指令
给汇编器的指令称为汇编器指令(assembler directive),这是指导汇编器完成功能所使用的指令,而要翻译的指令则是汇编器在指导下发挥功能翻译的指令。 -
区分执行一个算法和开发一种算法
算法(algorithm):解决方案的计划或概要,或解决问题的逻辑步骤程序。
执行一个算法是按照算法的逻辑顺序进行,而开发一种算法是开发一种解决问题逻辑顺序。
- 描述表达算法时使用的伪代码结构。
伪代码(pseudocode):一种表达算法的语言。
输入——判断——操作——输出(个人向理解)
- 两种测试方式
代码覆盖(明箱)测试法(code-coverage(clear-box)testing):通过执行代码中的所有语句测试程序或子程序的测试方法。
数据覆盖(暗箱)测试法(data-coverage(black-box)testing):把代码作为一个暗箱,基于所有可能的输入数据测试程序或子程序的测试方法。
第七章 问题求解与算法设计
1.结合Polya提出的如何解决问题的列表,描述计算机问题求解的过程
计算机问题求解过程包括四个阶段,即分析和说明阶段、算法开发阶段、实现阶段和维护阶段,详见附图。
2.简单类型与复合类型
简单类型:包括语言的基本类型和抽象数据类型。
复合类型:由简单类型构成。
3.递归
递归(recursion):算法调用它本身的能力。
每个递归算法至少由两种情况:基本情况和一般情况。基本情况是答案已知的情况;一般情况则是调用自身来解决问题的更小版本的解决方案。因为一般情况下解决的是原始问题越来越小的版本,所以程序最终达到基本情况,即答案是已知的,所以递归停止。
4.无序数组和有序数组
前者是杂乱无序排列的数组,后者是以一定的顺序排列的数组。
5.选择排序和插入排序
选择排序:依次查找符合顺序的个体,每找到一个便将之以所需顺序排列,之后再重新经行查找,反复操作直至排序成功。需要两个完整列表的空间。
插入排序:每次迭代后,一个元素将被放在相对于其他元素来说适当的位置上。
6.快速排序算法
其为对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序数列。
7.二分检索
二分检索是快速排列的基础。
二分检索(binary search):算法假设要检索的数组是有序的,其中每次比较操作可以找到要找的项目或把数组减少一半。二分检索不是从数组开头开始顺序前移,而是从数组中间开始。如果要搜索的项目小于数组的中间项,那么可以知道这个项目一定不会出现再数组的后半部分,因此只需要搜索数组的前半部分即可
浙公网安备 33010602011771号