第二章算法程序的灵魂
第二章-算法---程序的灵魂

• 一个非结构化的算法可以用一个等价的结 构化算法代替,其功能不变
• 如果一个算法不能分解为若干个基本结构, 则它必然不是一个结构化的算法
2.4.5用伪代码表示算法
• 伪代码是用介于自然语言和计算机语言之 间的文字和符号来描述算法
第2章 算法---程序的灵魂
• 一个程序主要包括以下两方面的信息:
(1) 对数据的描述。在程序中要指定用到哪些 数据以及这些数据的类型和数据的组织形式
– 这就是数据结构(data structure)
(2) 对操作的描述。即要求计算机进行操作的 步骤
– 也就是算法(algorithm)
• 数据是操作的对象
Y p2
N
A
B …M
N
2.4.4 用N-S流程图表示算法
• N-S流程图用以下的流程图符号:
A B 顺序结构
p
Y
N
AB
选择结构
当p1成立
A
循环结构 (当型)
A
直到p2成立
循环结构 (直到型)
例2.11将例2.1的求5!算法用N-S图表示。
1t 2i t*it i+1i 直到i>5 输出t
• 一个结构化的算法是由一些基本结构顺序 组成的
• 改进的算法:
– 设变量p为被乘数 – 变量i为乘数 – 用循环算法求结果
2.2简单的算法举例
• S1:使p=1,或写成1p • S2:使i=2,或写成2i • S为3::p使*ip与pi相乘,乘积若仍是放10在0变0,量求p中什,么可?表示 • S4:使i的值加1,即i+1 i • S5:如果i不大于5,返回重新执行S3;否则,
第2章 算法---程序的灵魂

2.1 什么是算法
广义地说,为解决一个问题而采取的方法和步骤, 广义地说,为解决一个问题而采取的方法和步骤, 方法和步骤 就称为“算法” 就称为“算法” 对同一个问题,可以有不同的解题方法和步骤 对同一个问题,可以有不同的解题方法和步骤 不同的 应考虑算法的质量,选择合适的算法 考虑算法的质量, 算法的质量
将例2.3判定闰年的算法用 判定闰年的算法用N-S图表示 例2.13 将例 判定闰年的算法用 图表示
2000⇒year ⇒ year%4为0 为 否 year%100不为 不为0 不为 是 year%400为 year%400为0 输出 year 闰年 是 输出year 输出 闰年 否 输出year 输出 非闰年 否 输出 year 非闰年
(1)对数据的描述 对数据的描述----数据结构 数据结构(data structure) 对数据的描述
数据的类型和数据的组织形式 数据的类型和数据的组织形式 类型和数据的
(2) 对操作的描述 对操作的描述-----算法 算法(algorithm) 。 算法
即要求计算机进行操作的步骤 即要求计算机进行操作的步骤
是
year+1⇒year ⇒ 直到year>2500 直到
2.4.5用伪代码表示算法 2.4.5用伪代码表示算法
伪代码是用介于自然语言和计算机语言之 间的文字和符号来描述算法 用伪代码写算法并无固定的、严格的语法 用伪代码写算法并无固定的、 规则,可以用英文, 规则,可以用英文,也可以中英文混用
例2.16 求ห้องสมุดไป่ตู้!。 。
例2.3 判定2000—2500年中的每一年是 判定 年中的每一年是 否闰年,并将结果输出。 否闰年,并将结果输出。 闰年的条件: 闰年的条件:
第2章 算法---程序的灵魂

S2:使i=2 3 ,或写成2 3i S3:使p与i相乘,乘积仍放在变量p中,可表 相当于i ≤11 示为:p*ip S4:使i的值加1 2 i 2,即i+1
S5:如果i不大于5 ,返回重新执行S3;否则 11 ,算法结束
算法的特性
一个有效算法应该具有以下特点:
0 x x<5 Y x+1x 输出x的值
N
输出1,2,3,4,5
(3) 循环结构
② 直到型循环结构
0 x x+1x
A N p2 Y
输出x的值
N
X≥5
Y
以上三种基本结构,有以下共同特点:
(1) 只有一个入口 (2) 只有一个出口 一个判断框有两个出口 一个选择结构只有一个出口 (3) 结构内的每一部分都有机会被执行到。也 就是说,对每一个框来说,都应当有一条从入 口到出口的路径通过它 (4) 结构内不存在“死循环”
(算法结束)
结构化程序设计方法
结构化程序设计强调程序设计风格和程序 结构的规范化,提倡清晰的结构。
结构化程序设计方法的基本思路是:把一 个复杂问题的求解过程分阶段进行,每个 阶段处理的问题都控制在人们容易理解和 处理的范围内。
结构化程序设计方法
采取以下方法保证得到结构化的程序:
(1) 自顶向下;
简单的算法举例
例求1×2×3×4×5× …×1000
可以用最原始的方法进行:
太繁琐 步骤1:先求1*2 ,得到结果2。
步骤2:将步骤1得到的乘积2再乘以3,得 到结果6。 步骤3:将6再乘以4,得24。 步骤4:将24再乘以5,得120。这就是最 后的结果。
改进的算法:
第2章、程序的灵魂——算法

2.2 简单算法举例
50个学生 要求将他们之中成绩在80 个学生, 80分以上者 例2.2 有50个学生,要求将他们之中成绩在80分以上者 打印出来。 打印出来。 表示学生学号,n1代表第一个学生学号 ni代表第 代表第一个学生学号, 代表第i 用n表示学生学号,n1代表第一个学生学号,ni代表第i个 学生学号。 代表学生成绩,gi代表第 个学生成绩, 代表第i 学生学号。用g代表学生成绩,gi代表第i个学生成绩,算 法可表示如下。 法可表示如下。 S1: S1:1=>i S2:如果gi≥80 则打印ni gi, gi≥80, ni和 S2:如果gi≥80,则打印ni和gi,否则不打印 S3: S3:i+1=>i S4:如果i≤50,返回S2,继续执行;否则, S4:如果i≤50,返回S2,继续执行;否则,算法结束。 i≤50 S2
上面的S1,S2 代表步骤 代表步骤1 步骤2 上面的S1,S2…代表步骤1,步骤2……S是step(步)的缩写。 S1 S step(步 的缩写。 这是写算法的习惯用法。 这是写算法的习惯用法。
2.2 简单算法举例
请读者仔细分析这个算法,能否得到预期的结果。 请读者仔细分析这个算法,能否得到预期的结果。显然这 个算法比前面列出的算法简练。 个算法比前面列出的算法简练。 11。 如果题目改为求1 如果题目改为求1×3×5×7×9×11。 算法只需作很少的改动即可: 算法只需作很少的改动即可: S1: S1: 1=>p S2: S2: 3=>i S3: S3: p×i=>p S4: S4: i+2=>i S5: i≤11,返回S3 S3; 否则,结束。 S5: 若i≤11,返回S3; 否则,结束。
程序设计=编程
第二讲算法---程序的灵魂

用传统流程图表示算法
流程图是用一些图框来表示各种操作 用图形表示算法,直观形象,易于理解
起止框
输入输出框
判断框
处理框
流程线
连接点
注释框
信息工程学院 王垚
用传统流程图表示算法
开始
1p 2i
p*ip i+1i N
2 6 24 120 3 4 5 6>5结束
i>5
Y
结束
信息工程学院 王垚
信息工程学院 王垚
2.3算法的特性
对于一般最终用户来说: 他们并不需要在处理每一个问题时都要自己设 计算法和编写程序 可以使用别人已设计好的现成算法和程序 只需根据已知算法的要求给予必要的输入,就 能得到输出的结果 输入3个数 求3个数的 黑箱子 最大数 3个数中最大数
信息工程学院 王垚
信息工程学院 王垚
Y
p
N
Y
p
N
A
B
A
顺序流程图
信息工程学院 王垚
三种基本结构的流程图
2. 选择结构
p Y A
N
B
N-S流程图
信息工程学院 王垚
三种基本结构的流程图
输出1,2,3,4,5 3.循环结构 (1) 当型循环结构
0x x<5 Y 输出x的值 x+1x N
p1 Y A
N
顺序流程图
信息工程学院 王垚
三种基本结构的流程图
信息工程学院 王垚
思考:
任意输入一个数据的阶乘是多少?
#include <stdio.h> int main( ) { int i,p,x; p=1; i=2; scanf("%d",&x); while(i<=x) { p=p*i; i=i+1; } printf("%d\n",p); return 0; }
第2章-算法---程序的灵魂-2

➢一种程序主要涉及下列两方面旳信息: (1) 对数据旳描述。在程序中要指定用到哪些数据以及 这些数据旳类型和数据旳组织形式 这就是数据构造(data structure) (2) 对操作旳描述。即要求计算机进行操作旳环节 也就是算法(algorithm) ➢著名计算机科学家沃思(Nikiklaus Wirth)提出一种 公式:
2.4.4 用N-S流程图表达算法
➢N-S流程图用下列旳流程图符号:
A B 顺序构造
p
Y
N
AB
选择构造
当p1成立
A
循环构造 (当型)
A
直到p2成立
循环构造 (直到型)
例2.11 将例2.1旳求5!算法用N-S图表达 。
1t 2i t*it i+1i 直到i>5 输出t
例2.13 将例2.3鉴定闰年旳算法用N-S图表达
算法 + 数据构造 = 程序 ➢算法、数据构造、程序设计措施和语言工具是一种程序 设计人员应具有旳知识
2.1 什么是算法 2.2 简朴旳算法举例 2.3 算法旳特征 2.4 怎样表达一种算法 2.5 构造化程序设计措施
2.1 什么是算法
➢自学
2.2简朴旳算法举例
例2.1 求1×2×3×4×5 ➢能够用最原始旳措施进行: 环节1:先求1 × 2,得到成果2。 环节2:将环节1得到旳乘积2再乘以3,得到成果6。 环节3:将6再乘以4,得24。 环节4:将24再乘以5,得120。这就是最终旳成果。 ➢改善旳算法: 设变量p为被乘数 变量i为乘数 用循环算法求成果
p1 N Y
A
0x
x<5 N Y
输出x旳值
x+1x
第二章程序的灵魂——算法
S1: 1 i;
S2: 如果gi80,则打印ni和gi,否则不打印。 S3: i+1 i; S4: 如果i50,返回s2,继续执行,否则算法结束。 本例中,变量i作为下标,用它来控制序号(第几个
学生,第几个成绩)。当 i超过50时,表示已对50 个学生的成绩处理完毕,算法结束。
例4
判断2000年---2500年中的每一年是否闰 年,将结果输出。
束。最后得到的p就是5!的值。
例2.求1×3×5×7×9 ×11
• 如果题目改为求1×3×5×7×9 ×11。 上述算法稍作改动: s1: 1 p; s2: 3 i; s3: p ×i p; s4: i+2 i s5: 若i11,返回s3;否则,结束。
求1×3×5×7×9 ×11
可以看出,用这种方法表示的算法 具有通用性、灵活性。S3到s5 组成一个 循环,在实现算法时,要反复多次执行 s3、s4、s5等步骤,直到某一时刻,执 行s5步骤时经过判断,乘数i已超过规定 的数值而不返回s3步骤为止。
•N-S流程图适于结构化程序设计
顺序结构程序设计
•依次顺序执行程序语句 执行a块 执行b块
先执行a操作,再执行b操作
判别选择结构程序设计
满足条件否
满足
不满足
执行a块 执行b块
•当条件成立,执行a操作,当条件不成立,执行b操作。 a,b操作允许空操作,即什么都不做。注意选择结构 是一个整体,代表一个基本结构。
买电视机的步骤:
选好货物 开票 付款
拿发票
取货
回家
考大学上大学的步骤
填报名单 交报名费
拿准考证
参加考试
报到注册
得到录取通知书
2.2、 简单算法举例
2008年高考英语试题及答案(安徽卷)
S1
i=1
当i<=1000 输入xi i=i+1
S2
S3
i=1 当i<=1000 N xi≠0
Y
打印xi i=i+1
输入1000个数存 入X1, x2,……x1000 让x1,……x1000中 的非素变为0
S1
i=1 当i<=1000
判断xi是否是素数, 若不是则将xi=0
S21
S2 S3 j=2
算法的概念
1.算法的概念
广义地讲--算法是为完成一项任务所应当遵照的一步一步的 规则的、精确的、无歧义的描述,它的总步数是有限的。
狭义地讲-- 算法是解决一个问题采取的方法和步骤的描述。
2.算法的描述
日常自然语言
伪代码(自然语言与程序设计语言相结合) 流程图(传统流程图、N—S流程图) 程序设计语言
6. 用计算机语言表示算法
只有用计算机编写的程序才能被计算机执行(先编 译连接)
main( ) { int max,n,a; n=1; scanf(“%d”,&a); max=a; while (n<=10) { scanf(“%d”,&a); 当型 if (max<a) max=a; 循环 n=n+1; } printf(“Max=%d\n”,max); }
语句2
(3)循环结构
a) 当型循环 While b) 直到循环 Until
语句
N 条件 Y
条件
Y
N
语句
三种基本结构的特点:
(1)只有一个入口 (2)只有一个出口 (3)结构内的每一部分都有机会被执行到
(4)结构内不存在死循环
开始
输入A
算法—程序的灵魂
第2章算法—程序的灵魂1、教学要求:要求学生了解算法的概念及其特性;会用自然语言或伪代码方式书写简单算法;掌握用流程图和N-S图表示算法。
2、教学重点、难点:重点是算法的特性,用流程图和N-S图表示算法;难点是N-S图表示算法。
3、教学内容:算法的特性;用自然语言或伪代码方式书写简单算法;用流程图和N-S图表示算法。
一个程序应包括两个方面的内容:•对操作的描述:算法(algorithm)•对数据的描述:数据结构(data structure)完整的程序设计应该是:灵魂加工对象结构化使用那种计算机语言§2.1 什么是算法1、广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。
2、对同一个问题,可有不同的解题方法和步骤例:求s=1+2+3+……+1000•方法1:1+2,+3,+4,一直加到100 加99次•方法2:100+(1+99)+(2+98)+…+(49 +51)+50 = 100 + 49×100 +50 加51次3、为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。
希望方法简单,运算步骤少。
4、计算机算法可分为两大类别:•数值运算算法:求数值解,例如求方程的根、求函数的定积分等。
•非数值运算算法:包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。
§2.2 简单算法举例例2.1: 求1×2×3×4×5算法一:步骤1:先求1×2,得到结果2步骤2:将步骤1得到的乘积2再乘以3,得到结果6步骤3:将6再乘以4,得24步骤4:将24再乘以5,得120如果要求1×2×…×1000,则要写999个步骤分析:本题运算特点是多次重复地进行两数相乘运算。
引入变量,利用循环操作将大大简化上述操作。
变量:回忆数学中函数的概念,如f(x)、g(x)等,其中x 的值是可以变化的,不是固定的,引入到C 语言中,将它称为变量。
程序的灵魂--算法(共23张PPT)
4.6 用计算机语言表示算法
计算机是无法识别流程图和伪代码的。只有用计算机语 言编写的程序经编译成为目标程序后,才能被计算机执 行。因此,在用流程图或伪代码描述出一个算法后,还 要将它转换成计算机语言程序。
循环结构
三种基本结构的特点:
(1)只有一个入口.a点为入口点。
(2)只有一个出口,b点为出口点。
注:一个菱形判断框有两个出口,而一个选择结构只 S2:若Y不能被4整除,则输出Y“不是闰年”。
每一行(或几行)表示一个基本操作. S7: deno=deno+1
有一个出口。 S2:若Y不能被4整除,则输出Y“不是闰年”。
自然语言表示的含义往往不太严格,要根据 上下文才能判断其正确含义。
用自然语言描述包含分支和循环的算法,不 很方便。
除了很简单的问题以外,一般不用自然语言描 述算法。
4.2 用流程图表示算法
流程图是用一些图框表示各种操作。 ANSI规定了一些常用的流程图符号,为世界 各国程序员普遍采用。
Y X>=0? N
A
B
选择结构
当P1成立
A
当型循环
A
直到P1成立 直到型循环
N-S流程图的优点:
N-S流程图比文字描述直观、形象、易于理解;由 S2: sum=1 于它废除了流程线,所以它比传统流程图紧凑易画,
[例4]求1-1/2+1/3-1/4+…+1/99-1/100
S3:将6再乘以4整,得个到24算。 法结构是由各个基本结果按顺序组成的。
循环结构
流程图表示的算法都是结构化算法。 S4:若Y能被100整除,又能被400整除,则输出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
① 起止框
位置不够
输入输出框
判断框
防止交叉 处理框
②
流程线
连接点
注释框
例2.6 将例2.1的算法用流程图表示。 求1×2×3×4×5 ➢ 如果需要将最后结果输出:
开始
1t
2i
t*it
i+1i N
i>5 Y
结束
例2.6 将例2.1的算法用流程图表示。 求1×2×3×4×5 ➢ 如果需要将最后结果输出:
2.4.6用计算机语言表示算法
➢ 要完成一项工作,包括设计算法和实现算法两个部分。 ➢ 设计算法的目的是为了实现算法。 ➢ 不仅要考虑如何设计一个算法,也要考虑如何实现一个算法。
例2.18 将例2.16表示的算法(求5!)用C语言表示。
#include <stdio.h> int main( ) { int i,t;
2
2
11
11
相当于i ≦11
2.3算法的特性
➢ 一个有效算法应该具有以下特点: (1) 有穷性。一个算法应包含有限的操作步骤,而不能是无限的。 (2) 确定性。算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的 。
2.3算法的特性
➢ 一个有效算法应该具有以下特点: (3) 有零个或多个输入。所谓输入是指在执行算法时需要从外界取得必要的信息。 (4) 有一个或多个输出。算法的目的是为了求解,“解” 就是输出。 没有输出的算法是没有意义的。 (5) 有效性。算法中的每一个步骤都应当能有效地执行,并得到确定的结果。
A B
2.三种基本结构 (2) 选择结构
2.4.3 三种基本结构和改进的流程图
Y
N
p
A
B
Y
N
p
A
2.4.3 三输种出基1,本2,3结,4构,5和改进的流程图
2.三种基本结构 (3) 循环结构
① 当型循环结构
N p1
Y A
0x N
x<5 Y
输出x的值
x+1x
2.4.3 三输种出基1,本2,3结,4构,5和改进的流程图
若求1×2.32×简5单×的7算×法9×举1例1
➢ S1:使p=1,或写成1p ➢ S2:使i=2,或写成2i ➢ S3:使p与i相乘,乘3积仍放在变量p中,3可表示为:p*ip ➢ S4:使i的值加1,即i+1 i ➢ S5:如果i不大于5,返回重新执行S3;否则,算法结束 ➢ 最后得到p的值就是 5!的值
t=1; i=2; while(i<=5) { t=t*i;
i=i+1; } printf("%d\n",t); return 0; }
2.5结构化程序设计方法
➢ 结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。 ➢ 结构化程序设计方法的基本思路是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问
1t 2i t*it i+1i 直到i>5 输出t
➢ 一个结构化的算法是由一些基本结构顺序组成的 ➢ 在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本结构范围之内 ➢ 一个非结构化的算法可以用一个等价的结构化算法代替,其功能不变 ➢ 如果一个算法不能分解为若干个基本结构,则它必然不是一个结构化的算法
➢ 改进的算法: 设变量p为被乘数 变量i为乘数 用循环算法求结果
2.2简单的算法举例
2.2简单的算法举例
➢ S1:使p=1,或写成1p ➢ S2:使i=2,或写成2i ➢ S3:使p与i相乘,乘积仍放在变量p中,可表示为:p*ip ➢ S4:使i的值加1,即i+1 i ➢ S5:如果i不大于5,返回重新执行S3;否则若,是算1法00结0,束求什么? ➢ 最后得到p的值就是 5!的值
2.三种基本结构 (3) 循环结构
② 直到型循环结构
0x
A
N p2 Y
x+1x 输出x的值 N
x≧5 Y
➢ 以上三种基本结构,有以下共同特点: (1) 只有一个入口 (2) 只有一个出口 一个判断框有两个出口 一个选择结构只有一个出口 (3) 结构内的每一部分都有机会被执行到。也就是说,对每一个框来说,都应当有一条从入口到 出口的路径通过它 (4) 结构内不存在“死循环”
结束
开始
1t
2i
t*it
i+1i N
i>5 Y
输出t
2.4.3 三种出各框的执行顺序,对流程线的使用没有严格限制 ➢ 使用者可以毫不受限制地使流程随意地转来转去,使人难以理解算法的逻辑
2.三种基本结构 (1) 顺序结构
2.4.3 三种基本结构和改进的流程图
➢ 算法是解决“做什么”和“怎么做”的问题 ➢ 程序中的操作语句,是算法的体现 ➢ 不了解算法就谈不上程序设计
2.1 什么是算法 2.2 简单的算法举例 2.3 算法的特性 2.4 怎样表示一个算法 2.5 结构化程序设计方法
2.1 什么是算法
➢ 广义地说,为解决一个问题而采取的方法和步骤,就称为“算法” ➢ 对同一个问题,可以有不同的解题方法和步骤 ➢ 为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法
➢ 数据是操作的对象 ➢ 操作的目的是对数据进行加工处理,以得到期望的结果 ➢ 著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:
算法 + 数据结构 = 程序
➢ 一个程序除了算法和数据结构这主要要素外,还应当采用结构化程序设计方法进行程序设计, 并且用某一种计算机语言表示
➢ 算法、数据结构、程序设计方法和语言工具是一个程序设计人员应具备的知识
2.4怎样表示一个算法
2.4怎样表示一个算法
2.4.1 用自然语言表示算法 2.4.2 用流程图表示算法 2.4.3 三种基本结构和改进的流程图 2.4.4 用N-S流程图表示算法 2.4.5 用伪代码表示算法 2.4.6 用计算机语言表示算法
2.4.1 用自然语言表示算法
➢ 2.2节介绍的算法是用自然语言表示的 ➢ 用自然语言表示通俗易懂,但文字冗长,容易出现歧义性 ➢ 用自然语言描述包含分支和循环的算法,不很方便 ➢ 除了很简单的问题外,一般不用自然语言
一个入口
2.4.2用流Y程图表示算法 x≧0
➢ 流程图是用一些两图个框出来口表示各种操作…… ➢ 用图形表示算法,直观形象,易于理解
N ……
起止框
输入输出框
流程线
连接点
判断框
处理框
注释框
① ③
2.4.2用流程图表示算法
➢ 流程图是用一些图框来表②示各种操作 ➢ 用图形表示算法,直观形象,易于理解 ③
2.4.5用伪代码表示算法
➢ 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法 ➢ 用伪代码写算法并无固定的、严格的语法规则,可以用英文,也可以中英文混用
例2.16 求5!。
begin 1t 2i while i≤5 { t*i t i+1 i } print t
end
(算法开始) (算法结束)
题都控制在人们容易理解和处理的范围内。
2.5结构化程序设计方法
➢ 采取以下方法保证得到结构化的程序: (1) 自顶向下; (2) 逐步细化; (3) 模块化设计; (4) 结构化编码。
谢谢
2020/11/26
40
2.1 什么是算法
➢ 计算机算法可分为两大类别: 数值运算算法 非数值运算算法
➢ 数值运算的目的是求数值解 ➢ 非数值运算包括的面十分广泛,最常见的是用于事务管理领域
2.2简单的算法举例
例22..11求求11××2×2×3×3×4×45×5× …×1000 ➢ 可以用最原始的方法进行:
步骤1:先求1*2,得到结果2。 步骤2:将步骤1得到的乘积2再乘以3,得到结果6。 步骤3:将6再乘以4,得24。 太繁琐 步骤4:将24再乘以5,得120。这就是最后的结果。
第二章算法程序的灵魂
2020/11/26
1
➢ 一个程序主要包括以下两方面的信息: (1) 对数据的描述。在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式 这就是数据结构(data structure) (2) 对操作的描述。即要求计算机进行操作的步骤 也就是算法(algorithm)
➢ 由三种基本结构派生出来的结构:
B
A
根据表达式p 的值进行选择
Y p2
N
A
B
…
M
N
2.4.4 用N-S流程图表示算法 ➢ N-S流程图用以下的流程图符号:
A B 顺序结构
p
Y
N
A
B
选择结构
当p1成立
A
循环结构 (当型)
A 直到p2成立 循环结构(直到型)
例2.11将例2.1的求5!算法用N-S图表示。
2.3算法的特性
➢ 对于一般最终用户来说: 他们并不需要在处理每一个问题时都要自己设计算法和编写程序 可以使用别人已设计好的现成算法和程序 只需根据已知算法的要求给予必要的输入,就能得到输出的结果
输入3个数
求3个数的最大数 黑箱子
3个数中最大数
➢ 常用的方法有: 自然语言 传统流程图 结构化流程图 伪代码 ……