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






