- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法的特性 1.有穷性:在有限的时间内,操作步骤能够终止。
2.确定性:每一步操作的含义必须明确,不允许有歧义性。
3.有效性:每一步都应当能有效地进行并得到确定的结果。 4.有0个或多个输入。 5.有1个或多个输出。
简单算法举例
第 三 章
求12345
算法一 S1:求12 ,得2; 算法二 S1:p=1
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
顺序
A
B
选择
Y
P
A B
N
直到型循环 当型循环
当P成立
A
直到P成立
A
第 三 章
求 n!的算法 (用N-S图表示)
main( ) { int i,p;
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
p=1;
p=1 i=2 当 i<=5 p=p*i i=i+1 打印t
算法: S1:p=1
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
开始 P=1
S2:i=2
S3:p i
S4:i+1 i
i
i=2 P=P*i i=i+1 N i>5 Y 打印P 结束
S5:若i 5,返回S3,否则结
束,得出结果 p为5!。
第 三 章
3. N-S结构化流程图 取消传统流程图中的流程线,基本结构及算法的表示 均在一个矩形框内,从上到下顺序执行,从而避免了算法流 程的任意转向,保证了程序的质量,适于表示结构化的算法。 所谓结构化算法就是由基本结构顺序组成的,基本结 构之间无跳转。
第 三 章
第三章
程序的控制结构及结构化程序设计方法
3.1 算法与算法的表示方法
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
3.2 顺序结构程序设计
3.3 选择结构程序设计 3.4 循环结构程序设计 3.5 结构化程序设计方法简介 3.6 简单的程序调试方法
第 三 章
3.1 算法与算法的表示方法
算法:
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
S1:n=1 S2:s=0 S3:s=s+n
S4:n=n+2
S5:若n <100,返回到S3,否则结束。
第 三 章
求 2+4+6+8+…..+100
算法:
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
S1:n=2 S2:s=0
算法二:利用循环算法,借助两个变量,可求任意数的阶乘,提高通用性。
第 三 章
求1+2+3+4……+100
算法:
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
S1:n=1 S2:s=0 S3:s=s+n
S4:n=n+1
S5:若n 100,返回到S3,否则结束。
第 三 章
求 1+3+5+7+……+99
直到 i>5
打印t
i=i+1; } while(i<=5)
printf(“%d”,p) }
3.2 顺序结构程序设计
第 三 章
3.2.1 顺序结构流程图表示 入口
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
A B 出口
传统流程图
A B
N-S 流程图
顺序结构的特点是完全按照语句出现的先后次序执行程序.
否则结束。
第 三 章
3.1.2
1. 自然语言
算法的表示方法
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
2. 传统流程图
处理框
输入输出框
开始/结束框
判断框
连接符
流程线
第 三 章
求 n!的算法
(用流程图表示)
直到型循环 当型循环 开始 P=1 i=2 P=P*i i=i+1 i5 N 打印P 结束 Y
3.2.2 顺序结构应用举例
第 三 章
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
#include <stdio.h> /*引用标准输入输出头文件*/ #include <math.h> /*引用数学头文件,调用标准数学函数*/ main() { float a,b,c,disc,x1,x2,p,q; scanf("a=%f,b=%f,c=%f",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf("\n\nx1=%5.2f\nx2=%5.2f\n",x1,x2); }
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
S2:将S1得的2再乘3,得6;
S3:将S2得的6再乘4,得24; S4:将24再乘5,得120,结果。
S2:i=2
S3:p i i S4:i+1 i
S5:若i5,返回S3,否则结束,
得出结果 p为5!。 比较两个算法
算法一:繁琐,数目大时步骤太多。
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
第 三 章
传统的流程图表示的三种基本结构
选择 顺序
A
B Y N Y N
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
P
P
A
B
A
当 型 循 环
A P
N Y
直 到 型 循 环
A P
Y N
第 三 章
N-S流程图表示的三种基本结构
S3:s=s+n
S4:n=n+2 S5:若n 100,返回到S3,否则结束。
第 三 章
求 1-2+3-4……-100 算法:
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
S1:sign=1
s2:n=2
S3:s=1 S4:sign=(-1)*sign
S5:s=s+sign*n
S6:n=n+1 S7:若n 100,返回到S4,
3.1.1 算法的概念
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
数据结构+算法=程序
数据结构:对数据的描述和组织形式,
算法:对操作或行为的描述,既操作步骤。
•算法——为解决一个具体问题而采取的确定的有限的操作步骤。
第 三 章
算法的分类
1.数值运算算法
2.非数值运算算法
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
i=2;
while(i<=5)
{ p=p*i ; i=i+1; } printf(“%d”,p) }
第 三 章
求 n!的算法 (用N-S图表示)
main( ) {
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计i=2 p=p*i i=i+1
p=1; i=2; do{ p=p*i ;
第 三 章
第三章 程序的控制结构及结构化程序设计方法
本章主要内容: 1.了解算法的表示方法及其在程序设计中的重要地位.
程 序 的 控 制 结 构 与 结 构 化 程 序 设 计 方 法
2.掌握 C 语言的基本控制结构和基本控制语句. 3.掌握用 C 语言的基本控制语句进行顺序,选择和循环结果程序的设计. 4.掌握一些常用的算法,如递推法,迭代法,穷举法等. 5.了解结构化程序设计的基本思想