计算机科学导论第6章程序设计与算法分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机科学导论
35
• ①顺序结构 把所有元素存放在一片连续的存储单元中, 逻辑上相邻的元素存储在物理位置相邻的存储 单元中,由此得到的存储表示称为顺序存储结 构。 顺序存储结构常借助于程序设计语言中的 数组来实现。优点是使用方法简单,缺点是必 须预先分析出所需定义数组的大小。
计算机科学导论
36
• ②链表结构 对逻辑上相邻的元素不要求其物理位置相 邻,元素间的逻辑关系通过附设的指针域来实 现,由此得到的存储表示称为链式存储结构。 链式存储结构通常借助于程序设计语言中 的指针来实现。
初步了解程序设计的基础知识掌握结构化程序设计和面向对象程序设计的基本方法掌握数据结构中的基本数据类型及其实现掌握程序设计算法的基本思想及几种经典的算程序就是能够实现特定功能的一组指令序列的集合
第六章 程序设计与 算法分析
计算机科学导论
1
本章要点
◆初步了解程序设计的基础知识 ◆掌握结构化程序设计和面向对象程序设计的基 本方法 ◆掌握数据结构中的基本数据类型及其实现 ◆掌握程序设计算法的基本思想及几种经典的算 法
计算机科学导论
7
高级语言的常见类型
• • • • • • • • (1) BASIC语言 (2) FORTRAN语言 (3) COBOL语言 (4) PASCAL语言 (5) C语言 (6) C++语言 (7) 其他高级语言 基于视窗类操作系统的,如Visual Basic、Visual C++、 Delphi、Power Builder、Java等等。
第二个含义称为信息隐蔽,即尽可能隐蔽 对象的内部细节。
计算机科学导论
29
5.继承性
• 继承性 是父类和子类之间共享数据和方法的机 制。 原有的类称为基类或父类,产生的新类 称为派生类。
计算机科学导论
30
6.多态性
• 多态性 在收到外部消息时,对象通常要予以响 应。不同的对象收到同一消息可能产生完全 不同的结果。
计算机科学导论
13
• (5) 字符串 • 由一串字符所组成。在不同的高级语言中,字 符串中的多个字符放在一对单引号或双引号中。
计算机科学导论
14
3.基本的数据类型
• 基本的数据类型通常包括整数数据类型、实数 数据类型和字符数据类型等。 • 变量必须先定义,然后才能使用,这是—条基 本原则。 • 变量实质上代表了一个特定大小的内存单元空 间。
计算机科学导论
33
3.数据结构
• 数据结构 是指数据元素之间的相互关系的集合,包 括了数据的逻辑结构、物理结构以及数据的运 算。
计算机科学导论
34
• ⑴数据的逻辑结构 数据的逻辑结构是指数据元素之间的逻辑 关系。数据之间可以根据不同的关系组成不同 的数据结构。 • (2) 数据的物理结构 数据的物理结构是指逻辑结构在计算机存 储器中的表示。数据的物理结构不仅要存储数 据本身,还要存储表示数据间的逻辑关系。
计算机科学导论
42
• ③查询 在线性表中,按照查询条件,定位数据 元素的过程就是查询。查询的条件一般根据 数据元素中的关键字进行。实际上,数据的 插入和删除都需要首先定位数据元素。对于 空的线性表是无法查询的。 • ④遍历 是指按照某种方式,逐一访问线性表中 的每一个数据元素,并执行相同处理的操作。 这里的处理可以是读、写、或查询等。
计算机科学导论
5
• 两者主要的区别在于:机器语言无需翻译或编 译,CPU能够直接识别和执行。而汇编语言必 须经过汇编才能得到目标程序。
计算机科学导论
6
高级语言的产生
• 所谓高级语言是一种由表达各种意义的“词” 和“公式”,按照一定的“语法规则”来编 写程序的语言,又称为程序设计语言或算法 语言。
计算机科学导论
11
2.高级语言的基本元素
• 基本元素由基本符号组成,可分为数、逻辑 值、名字、标号和字符串等五大类。 • (1) 数 • 它由0~9共10个基本数字和其他一些符号(如 小数点“.”、正负号“+、-”及指数符号 “E”等所构成。 • (2) 逻辑值 • 由真(True)和假(False)两个值表示。
计算机科学导论
15
4.结构数据类型
• • • • (1) 数组类型 数组是若干个相同类型的数据的集合。 (2) 用户自定义的结构体类型 结构体是隶属于同一个事物的多个不同类型 的数据的集合,用来表示具有若干个属性的 一个事物。
计算机科学导论
16
5.运算符与表达式
• 表达式是由基本符号、基本元素和各种数据 通过各种运算符连接而成的。 • 高级语言中的运算符大致包括以下几个方面: • (1) 逻辑运算:与、或、非、异或。 • (2) 算术运算:加、减、乘、除、取模。 • (3) 数据比较:大于、小于、等于、不等于。
最小问题

最小问题
计算机科学导论
22
• 结构化程序设计的原则是: • (1) 使用顺序、选择、循环3种基本控制结构表 示程序逻辑。 • (2)程序语句组织成容易识别的语句模块,每 个模块都是单入口、单出口。 • (3)严格控制GOTO语句的使用。
计算机科学导论
23
入口
A
入口

入口 A
真 S
假 出口
计算机科学导论
17
• (4) 数据传送;输入、输出、赋值。 • (5) 算术表达式:该表达式的运算结果是数, 它非常近似于日常的数学公式。 • (6) 关系运算表达式:该表达式的运算结果是 逻辑值,常用的运算符包含>(大于)、<(小 于)、=(等于)、<=(小于等于)、>=(大于 等于)、<>不等于。 • (7) 字符串表达式:该表达式的运算结果是字 符串。
计算机科学导论
12
• (3) 名字 • 由字符组成,一般约定名字的开头是字母或者 下划线,其后可为字母或数字,如XYZ、 A123、_C等。名字可用来定义常量、变量、 函数、过程或子程序的,也被用来定义成某些 东西,故也称为标识符。在高级语言中,一般 还规定了组成名字的字符的长度,即字符个数。 • (4) 标号 • 是在高级语言中的程序语句前所加的一个名字, 主要用来指示程序可能的转移方向。
计算机科学导论
37
• ③索引结构 针对每个数据结构建立一张所谓的索引表, 每个数据元素占用表中的一项,每个表项包含 一个能够惟一识别一个元素的关键字和用以指 示该元素的地址指针。 • ④散列结构 通过构造相应的散列函数,由散列函数的 值来确定元素存放的地址。
计算机科学导论
38
• (3) 数据运算 数据操作的集合。常见的数据操作有数 据的插入、删除、查找、遍历等。 数据操作通常由计算机程序加以实现, 通常也叫算法实现。
计算机科学导论
40
• 2.运算和实现 线性表通常采用顺序和链表两种物理实现。 对于经常变化的表,通常采取链表结构。
计算机科学导论
41
• ①插入 在保持原有的存储结构的前提下,根据插 入要求,在适当的位置插入一个元素。插入操 作要求线性表要有足够的存放新元素的空间, 如果空间不足,插入操作无法进行,线性表会 溢出。 • ②删除 在线性表中,找到满足条件的数据元素, 并删除。如果线性表为空,删除就会失败。
计算机科学导论
2
6.1
6.1.1
程序设计基础
程序的概念
• 程序就是能够实现特定功能的一组指令序列的 集合。 • 程序设计是程序员编写一系列可存储的指令以 指示计算机完成某些工作的过程。这些指令用 程序设计语言写成。 • 程序设计语言是一组专门设计的用来生成一系 列可被计算机处理和执行的指令的符号集合。 • 程序设计人员用程序设计语言写成的指令称 作代码。 计算机科学导论
S 真
B
A 出口
B
真 S 假
A
(a) 顺序结构
(b) 选择结构
(c) while循环
(d) do-while循环
计算机科学导论
24
2.模块
• 一个复杂的问题可以划分为多个简单问题的组 合。 • 在自顶向下、逐步细化的过程中,把复杂问题 分解成一个个简单问题的最基本方法就是模块 化。 • 模块化便于问题的分析,模块体现了信息隐藏 的概念。模块常用子程序加以实现。
计算机科学导论
8
Hale Waihona Puke 高级语言的特点• 优点:语句的功能强,源程序比较短,容易学 习,使用方便,通用性较强,便于推广和交流。 • 缺点:编译程序比汇编程序复杂,而且编译出 来的目标程序往往效率不高,目标程序的长度 比有经验的程序员所编的同样功能的汇编语言 程序要长—半以上,运行时间也要长一些。
计算机科学导论
计算机科学导论
25
6.2.2 面向对象的程序设计方法
1.面向对象的思想
• OO(Object Oriented,面向对象)的程序设计把 客观事物看作具有属性和行为的对象,通过抽 象找出同一类对象的共同属性(静态特征)和行 为(动态特征),形成类。
计算机科学导论
26
2.对象和类
• 对象
是基本的实体,既包括数据(属性),也 包括作用于数据之上的操作(方法或函数)。 • 类 定义了一组大体上相似的对象。一个类所 包含的方法和数据描述一组对象的共同行为和 属性。 对象则是类的具体化,是类的实例。
计算机科学导论
39
6.3.2
线性表
• 1.定义 • 线性表是由有限个相同的数据元素构成的序 列,元素之间是一对一的线性关系,除了第 一个元素只有直接后继、最后一个元素只有 直接前驱外,其余数据元素都有一个直接前 驱和一个直接后继,如图。
元素 1 uansu
元素 2 1
元素 3 1
… ua
元素 n 1
计算机科学导论
31
6.3
6.3.1 基本概念
1.数据、数据类型
数据结构
• 数据 是对客观事物的符号表示。 • 数据类型 是指具有相同取值范围和可以实施同种操作的数 据的集合的总称。
计算机科学导论
32
2.数据元素、数据项、数据对象
• 能够独立并完整地描述客观世界实体的基本数 据单元称为数据元素,它是组成数据的基本单 位。 • 数据项是组成数据元素的不可分割的最小单 位。最简单的数据元素就是由一个数据项构成 的。 • 同类数据元素的集合称为数据对象。
计算机科学导论
18
6.语句
• 语句是构成高级语言源程序的基本单位,是由 基本元素、运算符、表达式等组成。
计算机科学导论
19
10.高级语言程序的运行
• 使用高级语言编制程序的一般过程可以归纳为以下几 个步骤: • (1) 使用文本编辑工具,逐条编写源程序的语句。存 储源程序文件时文件的后缀名与所用的高级语言有关。 • (2) 编译源程序文件,生成目标文件,文件后缀名通 常为obj。 • (3) 链接目标文件,生成可执行文件,文件后缀名通 常为exe。 • (4) 在计算机上执行可执行程序文件,进—步调试和 维护。
计算机科学导论
10
• (3)特殊字符 • +(加),-(减),*(乘),/(除),∧(乘方),= (等号),((左括号),)(右括号),>(大于),< (小于),,(逗号),(空格)等。 • 在高级语言中的多字符基本符号由两个或两 个以上的字符组成,例如GoTo(转移)、<= (小于或等于)、AND(与)等等。
3
6.1.2
计算机程序设计语言
• 分类: 低级语言、高级语言。 1)低级语言包括两种类型:机器语言和汇编语 言。 2)高级语言又称为程序设计语言或算法语言。
计算机科学导论
4
低级语言的特点
• ① 都与特定的计算机硬件系统紧密相关,来自 于特定系统的指令系统,可移植性差; • ② 专业知识要求高,要求对计算机硬件的结构 和工作原理非常熟悉; • ③ 每条指令的功能很单一,程序员编制源程序 时指令比较繁琐; • ④ 由于直接针对特定硬件编程,所以,最终的 可执行程序代码精炼,而且执行效率非常高。
计算机科学导论
27
3.抽象
• 抽象
是对具体事物(即对象)进行概括,即忽略 事物的非本质特征,只注意那些与当前目标有 关的本质特征,从而抽象出一类对象的共性并 加以描述。
计算机科学导论
28
4.封装性
• 封装的两个含义: 第一是,将抽象得到的数据成员和代码成 员相结合,形成一个不可分割的整体,即对象, 这种数据及行为的有机结合也就是封装。
计算机科学导论
20
6.2.1
1.
结构化程序设计方法
结构化程序设计思想
采用自顶向下、逐步求精的设计方法和 单入口单出口的控制结构。
计算机科学导论
21
需要解决的复杂问题
二级子问题 . . . 三级子问题 . . .
二级子问题

二级子问题 . . .
三级子问题 . . .

三级子问题 . . .
最小问题
9
6.1.3 高级语言的基本内容 1.高级语言的基本符号
• 高级语言都是由所谓的基本符号组成的。基本 符号可以分为单字符和多字符两种情况。单字 符基本符号由单个字符组成,在高级语言中通 常都有下列几种单字符基本符号: • (1) 字母 • 大写英文字母A~Z,小写英文字母a~z,共52 个符号。 • (2) 数字 • 0~9,共10个数字符号。
相关文档
最新文档