算法及控制结构

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



教学目的和任务:帮助学生建立算法的概念, 明白算法在程序中的地位,掌握描述算法的 工具极其应用。 教学重点:帮助学生建立算法的概念,明白 算法在程序中的地位 教学难点:算法的概念极其在程序中的地位。
第2章 算法

教学内容


算法的概念 2.2 简单算法举例 2.3 算法的特性 2.4 怎样表示一个算法 2.5 了解结构化程序设计方法
第2章 算法

2.1 算法的概念:


算法:为解决一个问题的精确描述; Nikiklaus Wirth :数据结构+算法=程序;
例1:设有两个杯子A和B,分别盛放酒和醋, 要求将它们互换。


2.2 简单算法举例

S1:C ← A S2:A ← B S3:B ← C
第2章 算法

例2:从3个数中挑出最大数,并将之置 Baidu Nhomakorabeamax。

第2章 算法

2.3 算法的特征
(1)有穷性; (2)确定性; (3)有零个或多个输入; (4)有一个或多个输出; (5)有效性;

第2章 算法

2.4 算法的表示
自然语言 流程图 伪代码 N-S图


程序只有三种基本结构

顺序结构、选择结构、循环结构

三种基本结构的基本元素框

第2章 算法

例如:要设计一个如下图所示的管 理程序:
高等院校事务管理
办 公 室 管 理
教 务 管 理
科 研 管 理
财 务 管 理
图 书 管 理
后 勤 管 理
人 事 管 理
三种控制结构

顺序结构 选择结构 循环结构

1、顺序程序举例
例 输入三角形边长,求面积 /*ch4_005.c*/ #include <math.h> 文件包含预处理命令 #include <stdio.h> main() { float a,b,c,s,area; 变量定义 scanf("%f,%f,%f",&a,&b,&c); 输入数据 s=1.0/2*(a+b+c); 输出数据 area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n",a,b,c,s); printf("area=%7.2f\n",area); }
S1:令max等于第一个数; S2:将max与第 2个数进行比较,若后者 大于MAX,将max修正为第 2个数; S3:将max与第 3个数进行比较,若后者 大于MAX,将max修正为第 3个数; S4:结束

第2章 算法

例3:求n!
S1:s ← 1,t ←1; S2:s ← s * t; S3:t ← t+1; S4:若 t 小于等于n,则返S2,否则结束。
Ns 流 程 图
输出MAX
第2章 算法

例如:从十个数中挑出最大数的N-S结构图 如下:
输入b, max=b
n=0
输入b max>b?
T
n=n+1 当n小于9 输出max
F max=b
第2章 算法

2.5 结构化程序设计方法
(1)自顶向下 (2)逐步细化 (3)模块化设计 (4)结构化编码
第2章 算法
N_S流程图表示的三种控制结构
A B 顺序
P
T A B 分支 F
当P1
A A 直到P2 当型循环 直到型循环
例如:求两数中的较大数算法如下:
BEGIN 输入a,b
传 统
N
MAX=B
Y
MAX=A
A>B?
流 程
输出MAX

END
第2章 算法
输入A,B 是 MAX=A A>B? 否 MAX=B
输入:3,4,6 输出:a= 3.00, b= area= 5.33
4.00, c=
6.00
s=
6.50
/*ch4_007.c*/ #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); } 输入:a=1,b=3,c=2 输出:x1=-1.00 x2=-2.00
相关文档
最新文档