第1章计算机的组成与程序设计基础1.1计算机的组成及基本工作原理一个完整的计算机系统应包括两个部分,即硬件系统和软件系统,如表1-1所示。1.计算机硬件的基本结构当今计算机已发展成由巨型机、小巨型机、大型机、小型机、微型机组成的一个庞大“家族”。这个家族中的成员尽管在规模、结构、性能和应用等方面存在着一定差异,但它们的基本硬件结构仍沿用着冯·诺依曼设计的传统结构。即由运算器、控制器、存储器、输入设备和输出设备五部分组成。一个计算机的基本硬件结构图如图1-1所示:1.1.1计算机硬件的系统运算器:进行算术运算和逻辑运算的部件寄存器ALU寄存器ArithmeticandLogicUnit算术运算:+-×÷逻辑运算:AND,OR,NOT计算机系统组成:运算器计算机系统组成:控制器控制器:指挥中心,指挥各部件协调的工作。控制器程序计数器PC指令寄存器IR操作控制器指令译码器ID存放将要被执行的指令地址,有自动加1的功能。存放当前要执行的指令代码。识别和翻译指令,产生相应的操作控制信号。根据译码器的译码结果,产生出实现该指令的全部动作的控制信号。计算机系统组成:存储器存储器:存储程序和数据内存:存储正在运行的程序和数据以及中间结果、最终结果。10110110存储内容20H存储地址地址寄存器地址总线数据总线地址译码器读写控制电路读写命令计算机系统组成:I/O设备输入设备输出设备硬件系统主机外部设备整个系统运行的物理平台硬件系统的核心是主机,主机的核心是CPU1.1.2计算机的软件系统软件概念及分类软件相关概念计算机语言软件:概念及分类软件:程序+文档+数据系统软件:用来管理、维护计算机并协调计算机各部件有效工作的软件。应用软件:实现具体应用的软件。软件软件:相关概念指令系统:计算机能够识别的所有指令的集合。※不同类型的计算机所识别的指令和指令系统是不一样的。面向机器,通用性差。15→A指令:计算机能够识别并执行的“操作命令”指令=操作码+操作数例:1011000000001111程序:为解决某一问题而设计的一系列指令或语句。机器语言:计算机能唯一识别并可直接执行的语言,由二进制数(0或1)排列组合而成。软件:计算机语言MOVA,15ADDA,10汇编语言:A=15A=A+10高级语言:10110000000011110010110000001010机器语言:执行效率高低可读性,通用性低高计算机语言:高级语言的执行汇编语言源程序目标程序.OBJ可执行程序.EXE高级语言源程序编译程序连接程序汇编程序连接1.1.3计算机工作原理内存储器外存储器输入设备输出设备控制器运算器操作系统Word软件*计算机的工作过程就是执行程序的过程指令的执行过程开始指令指令指令指令结束指令程序的执行指令的执行过程取出指令分析指令执行指令从内存某地址取出要执行的指令把取出的指令送指令译码器,译出对应操作向相关部件发送控制命令,完成操作译码器操作控制器地址寄存器AR累加器暂存器通用寄存器程序计数器PC指令寄存器IR数据寄存器DRCPUALU存储器地址指令或数据内容20213031CLAADD30000006①③④地址总线数据总线②⑤000020000020000021CLACLA000000译码器操作控制器地址寄存器AR累加器暂存器通用寄存器程序计数器PC指令寄存器IR数据寄存器DRCPUALU存储器地址指令或数据内容20213031CLAADD30000006①③④地址总线数据总线②000021000022000021000000ADD30ADD30译码器操作控制器地址寄存器AR累加器暂存器通用寄存器程序计数器PC指令寄存器IR数据寄存器DRCPUALU存储器地址指令或数据内容20213031CLAADD30000006地址总线数据总线000021000022ADD30ADD30000000①③④②000030000006000006+000006000006程序设计基础知识北京科技大学信息工程学院程序设计是一门技术,需要相应的理论、技术、方法和工具来支持。就程序设计方法和技术的发展而言,经过了结构化程序设计和面向对象的程序设计阶段。除了好的程序设计方法和技术之外,程序设计风格也是很重要的。因为程序设计风格会深刻影响软件的质量和可维护性,良好的程序设计风格可以使程序结构清晰合理,使程序代码便于维护,因此,程序设计风格对保证程序的质量是很重要的。程序设计方法与风格程序设计方法与风格(续)要形成良好的程序设计风格,应考虑以下几个因素:1.源程序文档化源程序文档化一般要考虑:标识符的命名、程序注释信息、视觉组织等几个方面。标识符的命名应遵循“见名知义”的原则。程序注释信息应能帮助读者正确理解整个程序。注释信息一般包括序言性注释和功能性注释。所谓序言性注释一般位于程序的开始部分,主要包括:标题、程序的主要功能、主要算法、程序作者等。所谓功能性注释一般位于程序的中间,主要描述变量的含义、语句的作用等。视觉组织主要是书写程序时应尽量清晰便于阅读,一般利用空格、空行、缩进等技巧。程序设计方法与风格(续)2.数据说明的方法数据说明的次序规范化。鉴于程序理解、阅读和维护的需要,使数据说明次序固定。当一个说明语句说明多个变量时,变量按照字母顺序排列。使用注释来说明复杂数据的结构。程序设计方法与风格(续)3.语句构造除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。A=A+BB=A-BA=A-B4.输入和输出输入和输出信息是用户直接关心的,输入和输出方式和格式应尽可能方便用户的使用。结构化程序设计由于软件危机的出现,人们开始研究程序设计方法,其中最受关注的是结构化程序设计方法。20世纪70年代提出了“结构化程序设计(structuredprogramming)”的思想和方法。结构化程序设计方法引入了一些工程的思想和结构化思想,使大型软件的开发和编程都得到了一些改善。结构化程序设计的原则1)采用自顶向下、逐步细化的方法进行设计;2)采用模块化原则和方法进行设计;即将大型任务从上向下划分为多个功能模块,每个模块又可以划分为若干子模块,然后分别进行模块程序的编写。3)限制使用goto语句。结构化程序设计的原则结构化程序设计方法的主要原则可以概括为自顶向下逐步求精模块化限制使用goto语句结构化程序的基本结构与特点结构化程序的基本结构:顺序结构、选择结构、重复结构。1.顺序结构顺序结构是程序的最基本、最常用的结构,也是最简单的程序结构。它是按照书写顺序依次执行语句的结构,如图1-5所示。(a)流程图(b)N-S结构图图1-5顺序结构2.选择结构选择结构又称为分支结构,这种结构是按照给定的条件判断选择执行相应的语句序列,如图1-6所示。分支结构一般根据条件判别来决定执行哪一个程序分支,满足条件则执行语句序列A,不满足条件,则执行语句序列B。通常,CPU每执行完一条指令后,便自动执行下一条指令,但分支结构的执行可以改变程序的执行流程。(a)流程图(b)N-S结构图图1-6选择结构3.循环结构循环结构又称为重复结构,通过循环控制条件来决定是否重复执行相同的语句序列。在计算机程序设计语言中,一般包括两种类型的循环:当型循环(如图1-7所示)和直到型循环如图1-8所示。(a)流程图(b)N-S结构图图1-7当型循环结构(a)流程图(b)N-S结构图图1-8直到型循环结构1.3C语言程序的基本结构及开发过程略