程序设计基本
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
存储器
数据总线 控制总线
输入/输出 接口电路
外部设备
17
1.0 计算机简介
➢操作系统(Operating System):
OS是各种软件的核心与基础
功能: cpu管理、存储管理、文件管理、设备管理、作业管理
常用的OS: MS-DOS、Windows、Unix、Linux
➢编译系统和高级语言环境
用户源程序
29
1.1.4 算法概述
例1-1:对于给定的有序数列 {3,5,11,17,21,23,28,30,32,50}, 如何查找30这个数据元素。
算法一:将30按顺序与给定数列逐一比较直到找到为止。这种 算法在最坏的情况可能需要比较整个序列。
算法二:查找过程中采用跳跃式方式查找,即先以有序数列 的中点位置为比较对象,如果要找的元素值小于该中点元素, 则将待查序列缩小为左半部分,否则为右半部分。通过一次 比较,将查找区间缩小一半。
➢用户源程序
高 操作系统 编
级
译
语
系
言
裸机
统
18
1.1.1 程序设计语言
一、程序的概念
程序是计算任务的处理对象和处理规则的描述。 1. 计算机处理的任务都是计算任务。 2. 处理对象是数据。 3. 处理规则是指处理的动作和步骤。
二、计算机软件
计算机软件 = 程序 + 文档
三、软件语言
软件语言是书写计算机软件的语言
循环条件 不满足 满足吗?
满足 循环体
循环条件满足吗? 循环体
(a) 流程图表示
(b) N-S图表示
40
1.2.3 N-S图表示法
b.直到型循环结构:先执行一遍循环体,再判断循环条件是否满足 ,如不满足再执行一遍循环体……直到条件满足,则退出循环,执 行循环体后的下一语句。这种循环结构至少要执行一遍循环体。
scanf(“%d”, &max); i=1; do
{ scanf(“%d”, &x); if (x>max) max=x; i=i+1; }
while ( i<=9) ; printf(“max=%d” , max) ; }
45
1.3 程序设计方法
一、 结构化程序设计(SP方法)
1. 程序的基本单元是函数。 2. SP方法主张使用顺序、选择、循环三种基本结构来嵌套
19
1.1.1 程序设计语言
四、程序设计语言
程序设计语言是用于书写计算机程序的语言。 基本成分: 1. 数据成分:描述程序所涉及的数据 2. 运算成分:描述程序所包含的运算 3. 控制成分:表达程序的控制构造 4. 传输成分:表达程序的数据传输 判断
程序设计语言 = 软件语言
20
1.1.1 程序设计语言
3. 数据的运算,即对数据施加的操作。
数据结构 = 逻辑结构 + 存储结构 + 运算
26
1.1.4 算法概述
一、 算法的概念及特性 1、算法的概念
广义上讲,算法就是为解决一个问题而采取的 方法和步骤。
对同一个问题可能有不同的解决方法和步骤, 即不同的算法为了快速有效的解决问题,在保证 算法正确的基础上,还要考虑算法的质量,选择 较优的算法。(方法简单,运算步骤少,运算快, 内存开销小的算法 )
判断条件 成立吗?
K=?
K1 K2
…
Kn
A1块
A2块
…
An块
(a) 流程图表示
A1块 A2块 …
An块
(b) N-S图表示
39
1.2.3 N-S图表示法
3、循环结构
a.当型循环结构:先判断循环条件是否满足,当条件满足,执行 一遍循环体,再判断循环条件,仍满足再执行一遍循环体……直 到不满足条件,则退出循环,执行循环体后的下一语句。若第一 次判断条件就不满足,则一次也不执行循环体。
27
1.1.4 算法概述
著名计算机科学家沃思提出的一个公式:
数据结构+算法=程序
对数据的描述
对操作的描述
2、计算机算法的分类:
(1) 数值运算算法 ---- 用于求数值解,如求解一个多元方程 (2) 非数值运算算法 ---- 多用于管理领域,如图书管理
28
1.1.4 算法概述
3、算法的五大特性
➢ 有穷性: 空间有穷:一个算法包含有限的操作步骤; 时间有穷:算法可以在合理的时间内运行完。 ➢ 确切性:算法中的每一个步骤是确定的,含义是唯一的 ➢ 可行性:算法中每一个步骤是可行的。 ➢ 有零个或多个输入 ➢ 有一个或多个输出
连结成具有复杂层次的“结构化程序”,严格控制 GOTO语句(无条件转移)的使用。 3. “自顶而下,逐步求精”的设计思想,“独立功能,单出、 入口”的模块仅用3种(顺序、分支、循环)基本控制结构 的编码原则。 4. C语言就是结构化设计语言。
循环体
不满足
循环条件 满足吗?
满足
(a) 流程图表示
循环体 直到循环条件满足为止
(b) N-S图表示
41
1.2.3 N-S图表示法
2、N-S流程图表示法
①顺序结构 ②选择结构
A
P
成立
不成立
B
AB
③循环结构
“当型”循 环
“直到型”循 环
A
当P成立
A
直到P不成立
42
1.2.3 N-S图表示法
例 描述求n!的值的算法
计算机是20世纪40年代人类的伟大创造。 当今计算机应用日益普及,它广泛应用于科学计算、过程 控制、信息传递和数据处理,而且已渗透到办公、教育、 家庭等许多领域。 计算机系统能够按人的要求接收和存储信息,能对信息进 行处理并提供所需结果,其结果(输出信息)取决于所接 收的信息(输入信息)及相应的处理算法。 计算机系统包括计算机硬件和计算机软件两大部分。 计算机硬件是借助电、磁、光、机械等原理构成的各种物 理部件的组合,是系统赖以工作的实体。 计算机软件一般指计算机系统中的程序及其文档,用于指 挥和管理整个系统按指定的要求进行工作。
程序设计基础(上)
主讲:袁宁 计算机软件教研室 邮箱地址: ise_yuann@ujn.edu.cn
导言
程序设计基础的学科地位 程序设计基础是计算机专业基础课,它
为以后的面向对象技术的学习以及C可视化 软件的学习奠定了基础,同时C语言也是数 据结构和操作系统等计算机专业主干课程的 上机工具,要求学生充分重视。
开始
F = 1Baidu Nhomakorabea i = 1 输入 n
i ≤ n?
输出 F 结束
F=F*i
i=i+1
43
例:输入10个数,找出其中最大的数,并输出。
step1: 输入一个数,存放在一个变量max中; step2: 设置用来累计比较次数的计数器 i(也是一个变
量) 1i; step3: 输入一个数,存放在另一个变量x中; step4:比较max和x中的数,若x>max,则将x的值送入max,
4
主要参考书目
谭浩强,C语言程序设计,清华大学出版社,1999. 全国计算机等级考试二级C教材。 C语言教学网站: http://c.ujn.edu.cn
5
考核办法
课程考核办法: 最终成绩=平时成绩*30%+期末考试成绩*70% 平时成绩=出勤*10%+作业*40%+实验*50%
6
1.0 计算机简介
不能直接执行
汇编语言
机器语言 编译
较为简单,一一对应替换
22
1.1.2 程序设计
3. 高级语言 接近于自然语言的计算机程序设计语言。不能直接运行,
需要转换为机器语言。通常有解释和编译两种。
使用较普遍的高级语言:FORTRAIN, ALGOL, BASIC, PASCAL, C, C++, JAVA, Delphi等。
2
导言
如何学好程序设计基础(仅供参考)
➢ 勤学——课内、课外;中文、英文…… ➢ 多练—— 实践是检验真知的唯一标准 ➢ 好问——不“知”下问 ➢ 善于思考——“学而不思则罔”
3
教学要求
通过课堂授课与上机实验相结合的方式,使 学生能够 深刻理解结构化程序设计的思想与方法 掌握C语言的基础知识 能够在计算机上熟练使用C语言的编辑环境来 编写、调试、运行程序 具有一定实践体会和相关的编程能力,能编写 超过1000行的C语言应用程序 。
1、顺序结构
A模块 B模块
A模块 B模块
(a) 流程图表示
(b) N-S图表示
37
1.2.3 N-S图表示法
2、选择结构(分支结构)
A模块
判断条件 成立吗?
B模块
成立
判断条件 成立吗?
不成立
A模块
B模块
(a) 流程图表示
(b) N-S图表示
38
1.2.3 N-S图表示法
由分支结构派生出来的多分支结构
25
1.1.3 数据结构
数据结构(Data Structure):计算机存储、组织数据 的方式。 数据结构一般包括三个方面的内容:
1. 数据之间的逻辑关系,也称数据的逻辑结构(Logical Structure)
2. 数据元素及其关系在计算机存储器内的表示,称为数据 的存储结构(Storage Structure)
否则,max的值不变; step5: i 增加1,即 i+1i ; step6: 若i<=9,则返回step3,继续执行,
否则输出max中的数,此时max中的数即为最大数。
44
输入一个数 max
1 i
输入 x
xmax?
是
否
x max
i+1 i
当 i <= 9
输出 max
#include <stdio.h> void main( ) { int x , max , i ;
一、计算机主机的组成控制计算机各部分协调工作
1、中央处理器(CPU) 运算器 控制器 寄存器组
存放指令和数据等
对数据进行运算
14
1.0 计算机简介
2、存储器(内存): 存放程序代码及数据 3、主板、声卡、显卡、数据线、电源等
15
16
1.0 计算机简介
二、计算机基本结构
地址总线
中央处理器 (CPU)
尖头框
循环
双边矩形框
调用子程序
33
1.2 算法表示方法
2、流程图表示法
用图框表示各种操作,用箭头表示算法流程
用流程图表示求两个数的和
直观形象, 易于理解
流程线没 有严格限
制。
开始 输入x 输入y Zx+y 输出z 结束
34
1.2.2 流程图表示法
C语言是一种结构化程序设计语言,结构化程序 设计主要采用自上而下、逐步细化的方法。结构化程 序有三种基本结构:
高级语言
编译 解释
机器语言
类似于自然语言
需要专门的编译 器、解释器,过
程较为复杂。
23
1.1.2 程序设计
三种语言的比较
高级语言
汇编语言
机器语言
24
1.1.2 程序设计
六、程序设计的具体步骤:
1. 方案确定: 建立问题的数学模型 2. 算法描述:描述处理规则 3. 数据描述:描述处理对象 4. 编写程序(编码):转换为程序语言 5. 程序测试:检测程序的正确性 注:编写程序只是程序设计的一个步骤,不等于程序设计
五、程序设计语言的发展
根据语言与硬件的关联程度,程序设计语言分为: 低级语言和高级语言 发展过程是从低级到高级 1. 机器语言
二进制代码表示的计算机能 直接识别和执行的一种机器指令 集合。
执行速度快,但较难掌握,不 同型号的计算机,其语言也不同。
21
1.1.1 程序设计语言
2. 汇编语言 用助记符号描述的指令系统。如: ADD a ,b 汇编语言机器不能直接执行, 必须翻译成机器语言,较难掌握。
通俗易懂,
比较冗余, 容易出现歧
义
Step2:将输入的第二个数3存入y
Step3:将x和y相加的结果存入z
Step4:输出结果z
32
1.2 算法表示方法
2、流程图表示法
用图框表示各种操作,用箭头表示算法流程
名称
符号
含义
箭头
流向或路径
矩形
处理功能
圆形
连接点
平行四边形
输入或输出
菱形
判断
圆弧边框
流程的起点或终点
7
1.0 计算机简介
计算机硬件组成 主机 输入设备: 输入程序和数据,如键盘、鼠标 输出设备: 输出计算结果,如显示器、打印机
8
输入设备
9
输入设备
10
输出设备
11
外部存贮器(外存):储存各种数据,如硬盘、 软盘、U盘
存储设备:硬盘和软盘
12
存储设备:光盘和优盘
13
1.0 计算机简介
①顺序结构 ②选择结构
A
成立
不成立
P
③循环结构
“当型”循 环
“直到型”循 环
A
A
B
A
B
P 成立
不成立
P 成立
不成立
35
传统的程序流程图例图
开始
输入a,b,c
Y
a>b?
N
Y
a>c?
N
Y
b>c?
N
输出a
输出c
输出b
输出c
结束
36
1.2.3 N-S图表示法
即结构化程序设计流程图,提供了描述三种基本逻辑 结构的图形工具,与传统的程序流程图对照描述如下:
30
1.1.4 算法概述
4、算法设计与分析常用的方法
➢ 递推法 ➢ 递归法 ➢ 穷举搜索法 ➢ 贪婪法 ➢ 分治法 ➢ 动态规划法 ➢ 迭代法
31
1.2 算法表示方法
一、 算法的表示方法
常用的算法表示方法:自然语言、流程图、N-S图、 伪代码、程序语言等。
1、自然语言表示法
用自然语言描述的算法。 例1-2:用自然语言表示求两个数的和(如2+3) Step1:将输入的第一个数2存入x