1 / 77

第四章 计算机软件组成

第四章 计算机软件组成. 4.1 程序设计语言及其翻译系统. 4.2 数据结构与算法. 4.3 操作系统. 4.4 软件开发技术. 4.3 操作系统. 4.4 软件开发技术. 4.1 程序设计语言及其翻译系统. 4.1.1 程序设计语言概述 4.1.2 结构化程序设计 (重点) 4.1.3 面向对象程序设计 4.1.4 良好的程序设计风格 4.1.5 程序设计语言翻译系统. 4.1.1 程序设计语言概述. 一、程序设计语言的分类

lindley
Download Presentation

第四章 计算机软件组成

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第四章 计算机软件组成 4.1 程序设计语言及其翻译系统 4.2 数据结构与算法 4.3 操作系统 4.4 软件开发技术 4.3 操作系统 4.4 软件开发技术

  2. 4.1程序设计语言及其翻译系统 4.1.1 程序设计语言概述 4.1.2 结构化程序设计(重点) 4.1.3 面向对象程序设计 4.1.4 良好的程序设计风格 4.1.5 程序设计语言翻译系统

  3. 4.1.1 程序设计语言概述 一、程序设计语言的分类 程序:是用计算机语言描述的对某一问题的解决步骤,是一组计算机能够识别的指令。 程序设计语言:也称为计算机语言,是一组关键字和语法规则的集合,可用来产生由计算机进行处理和执行的指令。 分为:机器语言、汇编语言、高级语言 依赖于硬件,称为低级语言 与硬件关系较小

  4. 4.1.1 程序设计语言概述 1、机器语言—能够被计算机直接执行的语言 (1)每个计算机都有一套指令系统,指令系统中的每一条指令就称为机器指令,而机器指令的集合就称为机器语言。 (2)机器语言由二进制代码 0 和 1 组成。 例:计算1+2=?的机器语言程序如下: 10110000 00000001 将1存入寄存器AL中 00000100 00000010 将2与AL的值相加,值放入AL 11110100 停机

  5. 4.1.1 程序设计语言概述 2、汇编语言—是第二代语言,是一种符号化了的机器语言。 采用有助于记忆的符号(称为指令助记符)与符号地址来代替器指令中的操作码和操作数。 例如:计算1+2=?的汇编语言程序如下: MOV AL,1 将1存入寄存器AL中 ADD AL,2 将2与存入寄存器AL中的值相加,结果 放在AL中 HLT 停机

  6. 4.1.1 程序设计语言概述 3、高级语言 高级语言更接近自然语言、更接近数学语言的程序设计语言。 例如:计算机1+2=?的高级语言程序如下: A=1+2 将1+2的结果存入变量A中 PRINT A 输出A的值 END 程序结束

  7. 4.1.1 程序设计语言概述 二、程序设计的过程 1、问题定义 2、算法设计 3、程序设计 4、调试运行 5、文档

  8. 总 结 一、程序设计语言的分类 1、机器语言— 能被计算机直接执行的计算机语言。 2、汇编语言— 是第二代语言,是一种符号化了的机器语言。 3、高级语言 二、程序设计的过程

  9. 复 习 一、输入输出系统 二、程序设计语言的分类 1、机器语言— 能被计算机直接执行的计算机语言。 2、汇编语言— 是第二代语言,是一种符号化了的机器语言。 3、高级语言 三、程序设计的过程

  10. 4.1.2 结构化程序设计 一、结构化程序设计的出现 1、起源 2、结构化程序设计的原则 (1)自顶向下 (2)逐步求精 (3)模块化 (4)限制使用 goto 语句

  11. 4.1.2 结构化程序设计 二、程序控制结构 1、顺序结构—最自然的顺序,由前到后执行。 顺序结构、选择结构、循环结构

  12. 4.1.2 结构化程序设计 2、选择结构—也称分支结构,根据设定好的条件选择一个出口。

  13. 4.1.2 结构化程序设计 3、循环结构—也称重复结构,当条件成立时,循环语句反复执行,直到条件不成立时退出。 不成立

  14. 总 结 一、结构化程序设计的原则 二、程序控制结构

  15. 4.1.3 面向对象程序设计 面向对象程序设计(Object Oriented Programming,OOP) 一、面向对象的基本概念 1、对象:要进行研究的任何事物,不仅能表示具体的事物,还能表示抽象的规划、计划和事件。例如:人,一家公司,一个窗口等。 2、对象的状态和行为 3、类:具有相同或相似性质的对象的抽象。 4、属性:是对象状态的抽象,是类包含的特征。 对象的抽象是类,类的具体化是对象。

  16. 4.1.3 面向对象程序设计 5、消息和方法 (1)消息:对象之间进行的通信。 (2)方法:类中操作的实现过程。 二、面向对象的特点 1、抽象 2、继承 3、封装 4、多态

  17. 总 结 一、面向对象的基本概念 二、面向对象的特点

  18. 4.1.4 良好的程序设计风格 一、总体设计的风格 结构(模块化)、思路(自顶向下)和条理(避免技巧)的清晰 二、程序文本的风格 易读性强、数据定义符合规则、要加注释 三、语句构造 简单直接,不为了效率而使代码复杂化 四、输入和输出 尽量简单、符合规则、保持一致性

  19. 4.1.5 程序设计语言翻译系统 1、源程序:用汇编语言或各种高级语言编写的程序。 2、目标程序:把计算机不能直接执行的源程序翻译成相应的机器语言程序,翻译的程序称为目标程序。 3、分类:这个翻译的过程有两种: ①解释过程、② 编译过程 4、程序设计翻译系统分为三种:汇编语言翻译系统、高级语言翻译系统、高级语言解释系统。

  20. 4.2 数据结构和算法 4.2.1 数据结构概述 4.2.2 几种常见的数据结构 4.2.3 算法概述 4.2.4 常用算法介绍 4.2.5 算法评估

  21. 4.2.1 数据结构概述 一、数据结构的定义 1、数据—是对客观事物的符号化表示,是指所有能输入到计算机中并被计算机程序处理的符号的集合。 2、数据结构—是一门研究非数值计算的程序设计中计算机的操作对象以及它们之间的关系和操作等的学科。

  22. 4.2.1 数据结构概述 二、数据结构研究的三个内容 1、逻辑结构 (1)定义:指数据元素之间的逻辑关系,它只抽象的反映数据元素间的相互关系,而不考虑数据在计算机中的具体存储方式,是独立于计算机的。 (2)4中基本结构 ① 集合—“同属一一个集合” ② 线性结构 —一对一的关系 ③ 树形结构—一对多的关系 ④ 图状结构(或称网状结构)—多对多的关系

  23. 4.2.1 数据结构概述 2、存储结构 (1)定义:指数据结构在存储器中的存储方式,也可以称为逻辑结构在计算机存储设备上的物理实现,称为数据的物理结构。 (2)基本组织方式:顺序存储结构和链式存储结构。

  24. 4.2.1 数据结构概述 3、基本操作 (1)定义:创建一种数据结构,需要在其上进行操作的定义。 (2)常见的操作:添加、删除、修改、查询等。

  25. 4.2.2 常见的数据结构 一、线性表 1、定义:是最简单、最常用的一种数据结构。一个线性表表是N个数据元素的有限序列。 2、存储结构:顺序存储结构 链式存储结构

  26. 4.2.2 常见的数据结构 二、栈和队列 1、栈 (1)定义:限制在表的一端进行插入和删除的线性表。 先进后出,是线性结构

  27. 4.2.2 常见的数据结构 2、队列 (1)定义:限制在表的一端进行插入,在另一端删除的线性表。 先进先出,是线性结构

  28. 4.2.2 常见的数据结构 三、树与二叉树 1、树 (1)定义:以分支关系定义的层次结构。 (2)一个树的例子 是非线性表结构

  29. 4.2.2 常见的数据结构 二、二叉树 结点、根、子树、度、叶子、层、双亲、兄弟、堂兄弟

  30. 4.2.2 常见的数据结构 四、图 是一种比线性表和树更为复杂的数据结构,可以把树看成是简单的图。 是非线性表结构

  31. 总 结 一、属于线性结构的: 线性表、栈、队列 二、属于非线性结构的: 树、二叉树、图

  32. 4.2.3 算法概述 一、算法的定义 算法:是在有限步骤内求解某一问题所使用的一组定义明确的规则,就是计算机解题的过程。 算法 + 数据结构=程序

  33. 4.2.3 算法概述 二、算法的性质 1、有穷性—有限的操作步骤 2、确定性—每一个 步骤都应当是确定 3、输入—指从外界取得必要的信息 4、输出—指一个算法所得到的结果 5、可行性—每一个步骤都能有效的执行 注意:在二级中将3,4和称为拥有足够的情报。

  34. 4.2.3 算法概述 三、算法的描述 将算法转化为高级语言源程序之前,通常先采用文字或图形工具来描述算法。 工具包括:自然语言、伪代码、流程图、N-S图等。

  35. 4.2.3 算法概述 1、自然语言 (1)定义:人们日常生活中所用的语言,如:汉语、英语等。 (2)优点:不用专门训练,通俗易懂。 (3)缺点:具有歧义性、描述循环和分支不清晰、不便于转化成计算机程序。

  36. 4.2.3 算法概述 2、流程图 定义:采用一些框图符号来描述算法的逻辑结构,每个框图符号表示不同性质的操作。其可以方便的表示任何程序的逻辑结构。

  37. 4.2.3 算法概述 Web界面 用户 系统 搜索 功能 咨询 知识 库 问题自动解答 人工分析 输出答案

  38. 4.2.3 算法概述 3、N-S图 又称为结构化流程图,采用一系列矩形框来表示各种操作,全部算法写在一个大的矩形框内,在大框内还包含其它从属于它的小框。 因此:程序的方向是从上向下的。 用户Web界面 问题自动解答 系统搜索功能 咨询知识库 人工分析 输出答案

  39. 4.2.3 算法概述 4、伪代码 是指不能够直接编译运行的程序代码,是介于自然语言和计算机语言之间的文字和符号来描述算法和进行语法讲解的一个工具。 注意: 1、自然语言:用汉字描述的。 2、伪代码:出现了程序设计的关键字。 3、流程图:有方框、菱形、箭头的图。 4、N-S流程图:只有方框的图。

  40. 4.2.4 常用算法介绍 一、递归 二、枚举法—列举出所有可能出现的情况 三、查找—在列表中确定目标所在位置的算法 四、排序—把一个杂乱无章的数据排列成一个有序的序列

  41. 4.2.5 算法评估 一、算法的时间复杂度 1、是依据算法编制程序后在计算机中运行时所消耗的时间的大小决定的。 2、把整个程序中语句的重复执行次数之和作为该程序运行的时间复杂度,用O(n)。

  42. 4.2.5 算法评估 二、算法的空间复杂度 1、是依据算法编制程序后在计算机中运行时所需要的空间大小决定的。 2、把整个程序在计算机上所占的空间作为该程序的空间复杂度,用S(n)。 三、算法是否易于理解、易维护

  43. 总 结 4.2.1 数据结构概述 4.2.2 几种常见的数据结构 4.2.3 算法概述 4.2.4 常用算法介绍 4.2.5 算法评估

  44. 复 习 一、关于程序设计语言 1、程序设计语言分类—机器语言、汇编语言、高级语言 2、结构化程序设计 (1)原则—自顶向下、逐步求精、模块化、限制使用goto语句 (2)程序控制结构—顺序、选择、循环 3、面向对象程序设计 (1)基本概念 (2)特点—抽象、继承、封装、多态

  45. 复 习 4、良好程序设计风格 二、关于数据结构 1、数据结构研究的三个方面 2、常见数据结构 (1)线性表—串成一串,是线性结构 (2)栈—先进后出,是线性结构 (3)队列—先进先出,是线性结构 (4)树、二叉树、图都是非线性结构

  46. 复 习 三、关于算法 1、算法的性质—有穷性、确定性、可行性、拥有足够的情报(输入、输出) 2、算法的描述—自然语言、伪代码、流程图、N—S图 3、算法评估—算法的时间复杂度、算法的空间复杂度

  47. 4.3 操作系统 4.3.1 什么是操作系统 4.3.2 操作系统的功能 4.3.3 操作系统的特征和体系结构 4.3.4 操作系统的分类 4.3.5 典型操作系统简介

  48. 4.3.1 什么是操作系统 操作系统 应用软件 计算机硬件

  49. 4.3.1 什么是操作系统 一、操作系统的定义 1、操作系统:是用来管理计算机系统的硬件资源、控制程序的运行、改善人机界面和为应用软件提供支持的软件系统。 2、操作系统:是最靠近硬件的一层软件。

  50. 4.3.1 什么是操作系统 二、操作系统的定义注意事项(四点) 1、操作系统是系统软件。 2、操作系统的功能是控制管理系统内各种资源。 3、操作系统提供众多服务,方便用户使用。 4、操作系统是计算机硬件与其它软件的接口,也是用户和计算机的接口。

More Related