第 2章 程序的灵魂 —— 算法一个程序应包括以下两方面内容:
1,对数据的描述 。在程序中要指定数据的类型和数据的组织形式,即数据结构
2,对操作的描述 。即操作步骤,也就是算法数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果程序 =算法 +数据结构 +程序设计方法 +语言工具和环境

灵魂 加工对象 编程的方法 工具
是解决“做什么”和“怎么做”的问题
2.1 算法的概念为解决一个问题而采取的方法,就称为“算法”。
2.2 简单算法的举例:
例 1:求 1?2?3?4? 5。
1?2?3?4? 51000。
2.3 算法的特征
( 1)有穷性
( 2)确定性
( 3)有零个或多个输入
( 4)有一个或多个输出
( 5)有效性
2.4 怎样表示一个算法用自然语言表示算法、用流程图表示算法、用 N—S流程图表示算法
2.4.1用自然语言表示算法例 2.5 对一个大于或等于 3的正整数,判断它是不是素数?
所谓素数,是指除了 1和该数本身之外,不能被其他任何整数整除的数。
判断一个数 N是否为素数,将 N作为被除数,将 2到( N-1) G各个整数轮流作为除数,如果都不能被整除,则 N为素数。
算法如下:
①:输入 N的值
②,2?I( I作为除数)
③,N被 I除,得余数 R
④ 如果 R=0,表示 N能被 I整除,则打印 N”不是素数,,算法结束;否则执行⑤
⑤ I+1?I
⑥ 如果 I≤N -1,返回③;否则打印 N”是素数,,然后结束。
注意:实际 n 2?n/2甚至?
缺点:文字冗长,易出现,歧义性,,语言不太严格,难判断。n
2.4.2 用流程图表示算法例 1:当 X≥0时,输出他本身 X,否则输出 -X。
X≥0?
打印 X 打印 -X
Y N
例 2:求 5!
例 3:判断素数优缺点,直观形象、清楚。但占用篇幅较多,复杂时费时又不方便。
开始
1?t
2?i
t× i?t
i+1?i
i>5
结束
n
y
开始输入 N
2?i
N/2的余数?r
r=0?
i+1?i
i>
打印 n
“是素数结束打印 n
“不是素数”
n
n
y
y
n
2.4.3 用 N— S流程图表示算法一个算法通常有三种结构:顺序结构、选择结构、循环结构
1、顺序结构,2、选择结构:
3、循环结构:
( 1)当型循环结构,( 2)直到型循环结构:
A
B
P
成立 不成立
A B
当 P1成立
A
A
直到 p1成立例 1:求 5! 例 2:将 50名学生成绩高于 80分的学 号和成绩打印出来。
1?t
2?i
t× i?t
i+1?i
直到 i>5
打印 t
1?i
输入 ni,cji
i+1?I
直到 i>50
1?I
cji?80
是 否输出 ni,cji
i+1?i
直到 i>50
2.5结构化程序设计方法用三种基本结构组成的程序必然是结构化的程序。这种程序便于编写、阅读、修改和维护。
具体说,采用以下方法保证得到结构化的程序。
1、自顶向下; 2、逐步细化; 3、模块化设计; 4、结构化编码作业:
P37 2.4 (1),(2),(3),(4),(5),(6),(7)、
(8)