zoukankan      html  css  js  c++  java
  • 2019—2020第一学年20202430《计算机科学导论》第三周学习总结

    通过上两章的学习,我了解了一个计算机系统所必需的基本信息。接下来在这一章的学习中,能够明晰各种语言的基础知识和伪代码的相关内容。

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

    6.1 计算机操作

    计算机:是能够存储、检索和处理数据的可编程电子设备。

    计算机能够对数据执行的操作:存储、检索和处理。

    6.2 机器语言

    机器语言:由计算机直接使用的二进制编码指令构成的语言。

    注意:大多数程序由高级语言编写,然后翻译成机器语言,而非直接用机器语言编写,因为这样太费时间。

    虚拟机:为了模拟真实机器的重要特征而设计的假想机器。本章主要介绍的是Pep/9虚拟机。

    回顾寄存器概念:中央处理器(CPU)中算数/逻辑单元的一小块存储区域,用来存储特殊的数据和中间值。这里介绍了其中三个寄存器

    程序寄存器:其中包含下一条即将被执行的指令的地址

    指令寄存器:其中包含正在被执行的指令的一个副本

    累加器:用来存储数据和运算的结果

    指令格式

    一条指令由两部分构成:指令说明符(8位)和操作数说明符(16位) 因此Pep/9的指令长度是一字节或三字节。

    一些示例指令

    0000:停止执行

    1100:将字载入寄存器A中

    1101:将字节载入寄存器A中

    1110:存储寄存器A中的字

    1111:存储寄存器A中的字节

    0110:将操作数加到寄存器A中

    0111:从寄存器A减操作数

    Pep/9的输入/输出

    遵循原则:内存映射输入/输出,输入设备在地址FC15,输出设备在地址FC16 注意:Pep/9采用ASCII字符集来表示字符。

    汇编语言

    汇编语言:一种低级语言,用助记码表示特定计算机的机器语言指令

    汇编器:把汇编语言程序翻译成机器代码的程序

    流程:汇编语言程序——汇编器——机器码程序

    Pep/9汇编语言

    在Pep/9汇编语言中,操作数用0x和十六进制表示,接下来是逗号,最后是寻址模式(由字母i(立即寻址)或d(直接寻址)说明)

    除了常规的指令,汇编语言编程还支持汇编器指令,这些指令都是汇编器本身使用的指令,有时它们也被称作伪操作。

    汇编器指令:翻译程序使用的指令。

    注释:为程序读者提供的解释性文字。

    数字数据、分支、标签

    分支:指出执行下一条指令的指令

    标签:对内存位置起的名字,可以将这个名字当作操作数

    汇编语言中的循环

    读取数字——多少个数字会被加到sum中——计数器,初始值为零——每一次循环计数器值加一———计数器的值达到极限值后停止,否则回到循环顶部继续处理。

    表达算法

    算法:解决方案的的计划或概要,或解决问题的逻辑步骤顺序

    伪代码:一种表达算法的语言

    伪代码的功能:

    变量

    赋值

    输入/输出

    选择

    重复

    伪代码语句:

    执行伪代码算法

    了解走查转换法

    写伪代码算法

    桌面检查:在纸上走查整个设计

    测试

    测试计划:一个文档,说明了要全面测试程序需要运行的次数以及运行程序使用的数据。

    代码覆盖(明箱)测试法:通过执行代码中的所有语句测试程序或子程序的测试方法

    数据覆盖(暗箱)测试法:把代码作为一个暗箱,基于所有可能的输入数据测试程序或子程序的测试方法

    测试计划实现:用测试计划中规定的测试用例验证程序是否输出了预期的结果

    第7章 问题求解与算法设计

    1.如何解决问题

    找到数据和未知量之间的联系。如果找不到直接的联系,则可能需要考虑辅助问题。最终应该得到解决方案。

    执行方案

    分析得到的解决方案

    ——提出问题

    对这个问题我了解多少? 解决方案是什么样的? 存在什么特例? 我如何直到已经找到解决方案了?

    ——寻找熟悉的情况

    ——分治法

    把一个大问题划分成几个能解决的小单元 ——算法:在有限的时间内用有限的数据解决问题或子问题的明确指令集合 ——计算机问题求解过程

    分析和说明阶段

    算法开发阶段

    实现阶段

    维护阶段

    ——方法总结

    分析问题

    列出主要任务

    编写其余模块

    根据需要进行重组和改写

    ——测试算法

    2.有简单变量的算法

    (1)带有选择的算法:if语句

    (2)带有循环的算法:计数控制循环、事件控制循环(嵌套结构:控制结构嵌入另一个控制结构的结构,又称嵌套逻辑。)、平方根。

    (3)抽象步骤:细节仍未明确的算法步骤

    (4)具体步骤:细节完全明确的算法步骤

    3.复杂变量

    (1)数组:同构项目的有名集合,可以通过单个项目在集合中的位置访问它们。项目在集合中的位置叫做索引

    (2)记录:异构项目于的有名集合,可以通过名字单独访问其中的项目。所谓异构,指集合中的元素可以不必相同

    4.搜索算法

    (1)顺序搜索:依次查找每个元素并将其与我们需要搜索的元素进行比较。

    (2)有序数组中的顺序搜索

    (3)二分检索:在有序列表中查找项目的操作,通过比较操作排除了大部分检索范围。

    5.排序

    ①选择排序

    ②冒泡排序 ③插入排序

    6.递归算法

    递归:算法调用它本身的能力

    (1)子程序语句

    (2)递归阶乘:阶乘:N!=N*(N-1)!

    (3)递归二分检索

    (4)快速排序

    7.几个重要思想

    (1)信息隐蔽:隐蔽的模块的细节以控制对这些细节的访问的做法

    (2)抽象:复杂系统的一种模型,只包括对观察者来说必需的细节

    数据抽象:把数据的逻辑视图和它的实现分离开

    过程抽象:把动作的逻辑视图和它的实现分离开

    控制抽象:把控制结构的逻辑视图和它的实现分离开

    控制结构:用于改变正常的顺序控制流的语句

    (3)事物命名:在编写算法时,我们使用速记短语表示要处理的任务和信息,也就是说,给数据和过程一个名字,这些名字叫做标识符。

    (4)测试——白盒测试:基于代码本身。黑盒测试:基于测试所有可能的输入值。

    下面用一副脑图来梳理第七章内容

  • 相关阅读:
    Activemq+Zookeeper集群
    Centos7 安装 ActiveMQ 5.15.1
    189. Rotate Array
    188. Best Time to Buy and Sell Stock IV
    187. Repeated DNA Sequences
    186.Reverse Words in a String II
    179. Largest Number
    174. Dungeon Game
    173. Binary Search Tree Iterator
    172. Factorial Trailing Zeroes
  • 原文地址:https://www.cnblogs.com/wkx2774745872/p/13896137.html
Copyright © 2011-2022 走看看