S2: sum=1 S3: deno=2
S4: sigh=(-1)×sigh
S5: term= sigh×(1/deno ) S6: term=sum+term
S7: deno= deno +1
S8:若 deno≤100,返回 S4;否则,结束 。
【例 2.5】对一个大于或等于 3 的正整数,判断它是不是一个素数 。算法可表示如下:
S1: 输入 n 的值
S2: i=2
S3: n 被 i 除,得余数 r
S4:如果 r=0,表示 n 能被 i 整除,则打印 n"不是素数",算法结束;否则执行 S5 S5:i+1->i
S6:如果 i≤n-1,返回 S3;否则打印 n"是素数";然后算法结束 。改进:
S6:如果 i≤n,返回 S3;否则打印 n"是素数";然后算法结束 。
2.3 算法的特性
1. 有穷性:一个算法应包含有限的操作步骤而不能是无限的 。
2. 确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的、模棱两可的 。
3. 有零个或多个输入 。
4. 有一个或多个输出 。
5. 有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果 。对于程序设计人员,必须会设计算法,并根据算法写出程序 。
2.4 怎样表示一个算法2.4.1 用自然语言表示算法
除了很简单的问题,一般不用自然语言表示算法 。
2.4.2 用流程图表示算法
流程图表示算法,直观形象,易于理解 。
文章插图
【例 2.6】将例 2.1 求 5!的算用流程图表示 。
文章插图
【例 2.7】将例 2.2 的算用流程图表示 。
文章插图
【例 2.8】将例 2.3 判定闰年的算用流程图表示 。
文章插图
【例 2.9】将例 2.4 求以下算式的算法流程图表示
文章插图
一个流程图包括:
· 表示相应操作的框;
· 带箭头的流程线;
· 框内外必要的文字说明 。
2.4.2 三种基本结构和改进的流程图
1) 顺序结构:
文章插图
2) 选择结构:
文章插图
3) 循环结构
文章插图
三种基本结构的共同特点:
1. 只有一个入口;
2. 只有一个出口;
3. 结构内的每一部分都有机会被执行到;
4. 结构内不存在"死循环" 。
2.4.3 用 N-S 流程图表示算法
1973 年美国学者提出了一种新型流程图:N-S 流程图 。顺序结构:
文章插图
选择结构:
文章插图
循环结构:
文章插图
2.4.4 用伪代码表示算法
伪代码使用介于自然语言和计算机语言之间的文字和符号来描述算法 。
2.4.5 用计算机语言表示算法
· 我们的任务是用计算机解题,就是用计算机实现算法;
· 用计算机语言表示算法必须严格遵循所用语言的语法规则 。
【例 2.20】求 1×2×3×4×5 用 C 语言表示 。分析参考【例 2.1】
文章插图
2.5 结构化程序设计方法
1. 自顶向下;
2. 逐步细化;