文档介绍:第二章程序的灵魂—算法
算法的概念
简单算法举例
算法的特征
怎样表示一个算法
结构化程序设计方法
本章要点:
了解算法的基本概念与特征
熟悉结构化程序设计的基本概念
掌握算法的表示方法
算法的概念
一、算法的概念
Nikiklaus Wirth 公式
程序= 数据结构+ 算法
数据结构:对数据的描述,在程序中指定数据的
类型和数据的组成形式。
算法:对操作的描述,即解决问题的方法和步骤。
程序= 数据结构+ 算法
+ 程序设计方法+ 语言工具+ 环境
1. 求 1×2 ×3 ×4 ×5 ( 即 5! )
算法一:
步骤1: 1×2 得 2 ;
步骤2: 2×3 得 6;
步骤3: 6×4 得 24 ;
步骤4: 24×5 得 120 ;
简单算法举例
算法二:
设 p 为被乘数, i 为乘数,采用循环算法。
S1 : 使 p = 1 ;
S2 : 使 i = 2 ;
S3 : 使 p ×i p
S4 : 使 i + 1 i
S5: 如果 i 不大于5 则返回重新
执行 S3 , S4 ,S5 ; 否则, 算法结束。
简单算法举例
求 1×2 ×3 ×4 ×5 ( 即 5! )
对一个大于或等于3的正整数,判断它是不是一个素数。
算法一:
将 n 作为被除数,将 2 到( n – 1 )
各个整数轮流作为除数,如都不能被
整除,则 n 为素数。
简单算法举例
算法二:
将 n 作为被除数,将2到n/2(或者是 2 到 n1/2 )
各个整数轮流作为除数,如都不能被整除,则n为
素数。
S1: 输入 n 的值
S2: i = 2 ( i 作为除数)
S3: n 被 i 除,得余数 r
S4: 如r= 0,则输出“不是素数”,反之执行 S5
S5: i + 1 i
S6: 如果 i≤ n – 1 , 返回 S3 ;
否则输出“是素数”结束。
简单算法举例
算法的特性
1. 有穷性
一个算法包含的操作步骤应当是有限的。
2. 确定性
一个算法的含义应当是唯一的,算法中的每一个
步骤应当是确定的,不应产生“歧义性”。
3. 有零个或多个输入
4. 有一个或多个输出
5. 有效性
算法中的每一步都应当能有效地执行,
并得到正确的结果。
自然语言
传统流程图
结构化流程图
伪代码
PDA图。
怎样表示一个算法
1. 传统流程图
特点: 用一些规定的图框表示各种操作。直
观形象,易于理解。
常用的ANSI规定图形符号如图:
起始或结束框
输入输出框
判断框
处理框
流程线
连接点
注释框
怎样表示一个算法