第二章 算法
2.1 算法的概念
2.2 简单算法举例
2.3 算法的特性
2.4 算法的表示
2.5 结构化程序设计方法
2.1 算法的概念程序 =数据结构 +算法对数据的描述对操作的描述算法分类:数值运算算法 ---- 用于求数值解非数值运算算法 ---- 多用于管理领域
2.2 简单算法举例算法 1:
step1:给定两个数的值
step2:做加法运算
step3:将结果保存
step4:输出结果算法 2:
step1,2? x,3?y
step2,x+y ( 2+3)
step3,5? z
step4:输出 z
C语言程序
#include <stdio.h>
void main( )
{ int x,y,z;
x=2; y=3;
z=x+y;
printf(“z=%d\n”,z);
printf(“%d+%d=%d\n”,x,y,z);
}
输出结果,
z=5
2+3=5
例:求两个数的和
2.3 算法的特性
1,有穷性:一个算法包含有限的操作步骤
2,确定性:算法中的每一个步骤是确定的,含义是唯一的
3,有零个或多个输入
4,有一个或多个输出
5,有效性:算法中每一个步骤应能有效运行
2.4 算法的表示
1,用自然语言表示优点是使用日常用语,通俗易懂缺点是文字冗长,容易出现歧义开始
2?x
3?y
x+y?z
输出 z
结束
2,用流程图表示,用图框表示各种操作优点是直观形象,易于理解
3,三种基本结构
① 顺序结构 ② 选择结构 ③ 循环结构
A
B
P
A B
成立 不成立不成立
A
P 成立
A
P 成立不成立
4,N-S流程图
A
B
A B
成立 不成立
P
A
当 P成立当 P成立
A
while循环 do-while循环例:输入 10个数,找出其中最大的数,并输出。
step6,若 i<9,则返回 step3,继续执行,
否则输出 max中的数,此时 max中的数即为最大数。
step1,输入一个数,存放在一个变量 max中;
step2,设置用来累计比较次数的计数器 i(也是一个变量 ) 1?i;
step3,输入一个数,存放在另一个变量 x中;
step5,i 增加 1,即 i+1?i ;
否则,max的值不变;
step4:比较 max和 x中的数,若 x>max,则将 x的值送入 max,
输入一个数? max
1? i
输入 x
x?max?是 否
x? max
i+1? i
当 i < 9
输出 max
#include <stdio.h>
void main( )
{ int x,max,i ;
scanf(“%d”,&max);
i=1;
do
{ scanf(“%d”,&x);
if (x>max)
max=x;
i=i+1;
}
while ( i<9) ;
printf(“max=%d”,max) ;
}
2.5 结构化程序设计方法
1、自顶向下
2、逐步细化
3、模块化设计
4、结构化编码需要解决的问题 P
子问题 p1 子问题 p2 子问题 p3
p12p11 p32p31 p33
设计 设计 设计 设计 设计 设计编码 编码 编码 编码 编码 编码课后习题
习题二
2.4:( 1)、( 3)、( 4)、( 5)、( 7)