计算机科学导论第第4章讲稿程序设计基础

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

2019/11/15
计算机科学导论
2
4.1 程序设计基础
程序设计步骤如下:
(1)确定要解决的问题。
(2)分析问题。在着手解决问题之前,应该通过分 析,充分理解问题,明确原始数据、解题要求、 需要输出的数据及形式等。
(3)选择计算方法。
(4)确定数据结构和算法。算法是解题的过程。首 先集中精力于算法的总体规划,然后逐层降低问 题的抽象性,逐步充实细节,直到最终把抽象的 问题具体化成可用程序语句表达的算法。这是一 个自上而下、逐步细化的过程。
结构化方法通常遵循以下原则: (1) 用户参与的原则 (2) 先分析、再设计、后实现的原则。 (3) 自上而下的原则 (4) 阶段成果文档化
2019/11/15
计算机科学导论
9
4.2.1 结构化程序设计方法
3.结构化程序设计方法 使用顺序、选择、循环3种基本控制结构。
2019/11/15
成一个个简单问题的最基本方法就是模块化。 模块化便于问题的分析,模块体现了信息隐藏的概
念。模块常用子程序加以实现。
2019/11/15
计算机科学导论
19
模块设计的方法:
•模块化设计的思想实际上是一种“分而治之” 的思想,把一个大任务分为若干个子任务, 每一个子任务就相对简单了。
•在拿到一个程序模块以后,根据程序模块的 功能将它划分为若干个子模块,如果这些子 模块的规模还嫌大,还再可以划分为更小的 模块。这个过程采用自顶向下方法来实现。
2019/11/15
计算机科学导论
22
4.2.2 面向对象的程序设计方法

类是具有共同属性、共同操作性质的对象的集合在
例如:桥梁是抽象的概念,重庆长江大桥、西湖断桥就是
具体的。我们把抽象的“桥”看成类,而具体的一座桥,
如重庆长江大桥看成是对象。
类是对象的抽象描述,对象则是类的实例。类是抽象
的,对象是具体的。
a
Y
N
S
A
B
2019/11/15
b 选择结构流程图
计算机科学导论
13
设计一个算法,输出a,b,c中的最大值。
2019/11/15
计算机科学导论
14
⑶ 循环结构
循环结构是指在一定条件下反复执行一个 程序块的结构。循环结构也是只有一个入口, 一个出口。
① while循环
当给定的条件S成立时,执行A 框操作,执行完A操作后,再判 断S条件是否成立,如果成立, 再次执行A操作,如此重复执行 A操作,直到判断p条件不成立 才停止循环。此时不执行A操作, 而从出口b脱离循环结构。
21
4.2.2 面向对象的程序设计方法
对象
对象(Object)是具有某些特性的具体事物的抽象。 对象在现实生活中到处可见。凡是我们要处理的事物都 可成为处理的对象,包括可见的事物(如人、汽车、电 话等)和非可见的事物(如感情、思想等)。
例如,一个人是一个对象,一台PC机是一个对象; 再将一台PC机拆开看,便有显示器、机箱、硬盘、主板 、处理器、鼠标等,这每一个部件又是一个对象,即PC 机对象是由多个“子”对象组成的,此时PC机可看作为 一个容器对象。
第4章 程序设计基础
第4章 程序设计基础
学习目标
了解程序设计的基础知识、程序设计风格的重要性、 基本的查找和排序方法。
掌握结构化程序设计方法和面向对象程序设计方法的 思想、几种基本的数据结构。
学习计算机首先要学习程序设计,良好的程序设计技 能和风格有助于加深对计算机的理解和进一步学习。
已知梯形两底a、b和高h,设计一个求梯形面积的算 法,并画出流程图。
2019/11/15
计算机科学导论
12
⑵ 选择结构
选择结构中包含一个判断框,根据给定的条件S 是否成立而选择执行A框或B框,当条件成立时,执 行A,否则执行B。判断框中的两个分支,执行完A或 B后都必须汇合在一起,从出口b 退出,然后接着执 行其后的过程。
85
3
张三
88
89
89
89
4
高二
78
90
95
87
5
苏三
80
99
94
91
表中的每一行是一个结点(或记录),即数据元素; 它是由学号、姓名、各科成绩及平均成绩等数据项组成。
2019/11/15
计算机科学导论
29
4.3.1 基本概念
3.数据结构
数据结构是指数据元素之间的相互关系的集 合,包括了数据的逻辑结构、物理结构以及 数据的运算。
高质量程序设计目标是结构化程度高、可读性好、效 率高、可靠性高、便于维护。
2019/11/15
计算机科学导论
4
4.2.1 结构化程序设计方法
1.自上而下与自下而上
先将一个大问题分解成若干个子问题,把比较复 杂的子问题继续分解成更加简单的二级子问题, 直至每个子问题都有显而易见的解决办法,然后 在实现时采用自下而上的方法,逐一编写解决各 个子问题的程序。设计程序时采用自上而下的方 法比采用自下而上的方法效率要高得多。
数据类型是指具有相同取值范围和可以实施同种操 作的数据的集合。例如,在程序设计语言中,通常 定义了字符型、整数型、数组等多种数据类型。
2019/11/15
计算机科学导论
27
4.3.1 基本概念
2.数据元素、数据项、数据对象
能够独立并完整地描述客观世界实体的基本数据单 元称为数据元素,它是组成数据的基本单位。在不同 的应用环境中,数据元素有时可以称为结点、记录 等。
16
设计一个算法,计算1+2+3+…+100的值。
2019/11/15
计算机科学导论
17
4.2.1 结构化程序设计方法
3.结构化程序设计方法 使用顺序、选择、循环3种基本控制结构。
2019/11/15
计算机科学导论
18
4.2.1 结构化程序设计方法
4.模块化方法 一个复杂的问题可以划分为多个简单问题的组合。 在自顶向下、逐步细化的过程中,把复杂问题分解
2019/11/15
计算机科学导论
5
4.2.1 结构化程序设计方法
采用自上而下解决问题的思路如图:
需要解决的复杂问题
二级子问题 ...
三级子问题 ...
二级子问题 … 二级子问题
... 三级子问题 … 三级子问题
...
...
最小问题
最小问题 … 最小问题
2019/11/15
计算机科学导论
6 Structure)是系统设计 和程序开发的重要基础。
2019/11/15
计算机科学导论
26
4.3.1 基本概念
1.数据、数据类型
数据是对客观事物的符号表示。在计算机系统内, 数据通常是指能够输入到计算机中并被计算机进行 处理的符号的集合。例如,数字、字母、汉字、图 形、图像、声音等信息在计算机内部的表示都是数据, 可以是数值数据,也可以是非数值数据。
(2)封装性
类的封装性是指类的内部信息对用户是隐蔽的。如同一台
电视机的使用者只需了解其外部按钮(用户接口)的功能与
用法,而无需知道电视机的内部构造与工作原理一样。
(3)多态性
类的多态性是指一些相关联的类包括同名的方法程序,但
方法程序的内容不同。
2019/11/15
计算机科学导论
25
4.3 基本数据结构
2019/11/15
计算机科学导论
32
数据逻辑结构
数据结构中数据元素之间所固有的关系描 述成前后件(前驱与后继)关系。
数据之间前后件关系是它们之间的逻辑关 系,与它们在计算机中存储位置无关,因 此将这种关系称为数据逻辑结构。
2019/11/15
计算机科学导论
3333
一个数据结构可以表示为: S=(D,R)
2019/11/15
计算机科学导论
30
4.3.1 基本概念 数据结构主要研究:
1. 数据集合中数据元素之间所固有的关系,即 数据逻辑结构;
2. 数据处理时数据在计算机中的存储关系,即 数据存储结构;
3. 对数据所进行的操作,即算法。
2019/11/15
计算机科学导论
3131
4.3.1 基本概念
计算机科学导论
10
⑴ 顺序结构
顺序结构是一种最简单、最基本的结构,在顺序结 构内,各块是按照它们出现的先后顺序依次执行。 下图表示了一个顺序结构形式,从图中可以看出它 有一个入口a点,一个出口b点,在结构内A框和B框 都是顺序执行的处理框。
a
A
2019/11/15
B
b
顺序结构示意图
计算机科学导论
11
S: 数据结构
D: 数据元素集合
R: D中数据元素之间前后件关系集合,
即数据逻辑结构
两个元素之间前后件关系用一个二元组
表示,如:(a1,a2)
2019/11/15
计算机科学导论
3434
事实上可能有:
如树形结构中的一个元素有多个后件
或如网状结构中的一个元素有多个前件
因此一般来说,数据之间有4种基本逻辑结构:
a
A Y S N
b
2019/11/15
计算机科学导论
15
② do-while循环
先执行A框操作,然后判断给定 条件S是否成立,如果成立,再 次执行A操作;然后再对S进行 判断,如此反复,直到给定的S 条件不成立为止。此时不再执 行A框,从出口b脱离循环。
a
A
Y S
N b
2019/11/15
计算机科学导论
2019/11/15
计算机科学导论
3
4.1 程序设计基础
(5)绘制流程图。 (6)编写程序。利用程序设计语言表示算法,编写
代码。 (7)调试并测试程序。调试程序包括编译和连接等
操作。程序员还要对程序执行的结果进行分析,只 有能够得到正确结果的程序才是所需的程序。 (8)整理资料,交付使用。
类可以划分为基类(根类)和子类(派生类) 。子类以
其基类为起点,并可继承基类的特征。
如水果是基类,苹果是子类,而红富士、黄元帅等苹
果品种又是苹果类的子类,在这里,水果也称为是苹果的
父类,苹果也可称为是红富士、黄元帅等的父类。具体的
一个红富士苹果就是一个对象。
2019/11/15
计算机科学导论
23
4.2.2 面向对象的程序设计方法
消息
消息是面向对象系统中实现对象间的通讯和请求任 务的操作。
消息传递是程序运行的基本处理活动。
2019/11/15
计算机科学导论
24
4.2.2 面向对象的程序设计方法
类的特性
(1)继承性
子类不但具有父类的全部属性和方法,而且允许用户根据
需要对已有的属性和方法进行修改,或添加新的属性和方法
,这种特性称为类的继承性。
非线性结构:有多个开始结点和多个终端 结点,每个结点可有多个前件和多个后件
2019/11/15
计算机科学导论
3737
数据物理结构
定义:数据在计算机存储器中的存储方式 称为数据存储结构(或数据物理结构)。
数据结构中数据元素之间在计算机中的位置关系与 逻辑关系不一定相同。
在数据存储结构中,不仅要存放各个数据元素信息, 还要存放数据元素之间前后件关系信息。
数据存储结构是逻辑结构在计算机存储器中的表示
2019/11/15
计算机科学导论
3838
数据物理结构
数据元素在计算机中通常有四种存储方式:
顺序 链式 索引 散列
常用顺序存储结构和链式存储结构。
数据项是组成数据元素的不可分割的最小单位。最简 单的数据元素是由一个数据项构成的。
同类数据元素的集合称为数据对象。
2019/11/15
计算机科学导论
28
4.3.1 基本概念
2.数据元素、数据项、数据对象
学号
姓名
高等数学 大学英语 政治经济学 平均成绩
1
王五
80
76
78
78
2
李四
90
78
87
集合 线性 树形 图形
2019/11/15
计算机科学导论
3535
集合 松散关系
线性结构 一对一关系
树形结构 一对多关系
2019/11/15
图形结构 多对多关系
计算机科学导论
3636
根据前后件关系的复杂程度,数据逻辑结 构分为2类。
线性结构:有且只有一个开始结点和一个 终端结点,并且每个结点最多只有一个前 件和一个后件,线性结构也称为线性表。
各小段表达为文字语句为止。这种方法就叫 做“自顶
向下,逐步细化”
2019/11/15
计算机科学导论
7
4.2.1 结构化程序设计方法
2.结构化方法 结构化方法有助于在正式编写程序之前充分
理解问题的实质和实现方法,并且可以在具 体编码过程中提供指导。
2019/11/15
计算机科学导论
8
4.2.1 结构化程序设计方法
2019/11/15
计算机科学导论
20
4.2.2 面向对象的程序设计方法
1.面向对象的思想
OO(Object Oriented,面向对象)的程序设计把客观事 物看作具有属性和行为的对象,通过抽象找出同一类 对象的共同属性(静态特征)和行为(动态特征),形成类。
2019/11/15
计算机科学导论
相关文档
最新文档