第2章结构化程序设计方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人机进行对话所使用的语言,就是程序设计语言……
程序=数据结构+算法
算法
结构化程序设计方法
算法:广义地说,为解决一个问题而采取的方法和 步骤。本书主要关心的为计算机算法。
计算机算法: • 数值运算算法 • 非数值运算的算法
算法
结构化程序设计方法
例1、求1*2*3*4*5
步骤1:先求1*2,得到结果2。 步骤2:将步骤1得到的乘积再乘以3,得到结果6 步骤3:将步骤2得到的乘积再乘以4,得到结果24 步骤4:将步骤3得到的乘积再乘以5,得到结果120
•总结过程
结构化程序设计方法
算法的表示
算法常用的表示方法有:
• 自然语言 • 结构化流程图 • 伪代码
结构化程序设计方法
算法的表示
自然语言 • 自然语言就是人们日常使用的语言,可以是汉语,
英语,或者其他语言。自然语言通俗易懂,但是文 字冗长,不严密。 • 例:张三对李四说他的孩子考上大学了
结构化程序设计方法
结构化程序设计方法
关于算法
好的算法
有穷性 确定性 有输入 有输出 有效性
算法 是针对 提出的可行 方案确定解决 问题、完成任务 的每一个细节 步骤。
结构化程序设计方法
关于程序设计
用程序设计语言来描述问题的求解过程,以及对其中参 与运算的数据进行合理地组织和安排,就叫做程序设计。
基 •分析问题 本 •确定算法 步 •编写程序 骤 •运行调试
结构化程序设计方法
算法
例2、求1*2*3*4*5* ······ *1000 设置2个变量,p代表被乘数,i代表乘数 S1:使p=1,即1 =>p 思考:1*3*5*7 ······ *999 S2:使i=2 ,即2 =>i S3:计算p*i,将结果放入p中,即p*i=>p S4:使i的值加1,即i+1=>i S5:如果i不大于1000,返回重新执行步骤S3以及其后的步
程序设计中的三种基本结构
• 顺序结构——自顶向下,无分支,无转移 • 选择结构——有分支,需条件判断 • 循环结构——有转移,某些语句可重复执行
– 当型循环 – 直到型循环
• 综合举例
结构化程序设计方法
顺
语句 1
序
结
构
语句 2
(a)流程图 表示法
(b)N-S图 表示法
结构化程序设计方法
步骤: • x --> temp • y --> x • temp --> y
• 程序:用编程语言编写,完成特定功能的语句的集合
• 编程步骤:
1.明确问题
2.问题
若干具体步骤(算法)
3.算法
程序
4.上机调试运行
• 算法
解题方法或解题步骤的精确描述
算法表示:文字描述、流程图和N-S流程图
关于程序
结构化程序设计方法
程序主要包含以下两个方面的内容: • 数据结构(data structure):数据的类型以及组织形式 • 算法(algorithm):对操作的描述
算法
结构化程序设计方法
例4、对于一个大于或等于3的正整数n,判断它是不是 一个素数。
• S1:输入n的值 • S2:i=2(作为除数) • S3:n被i除,得到余数r • S4:如果r=0,说明n不是素数,算法结束,否则执行S5 • S5:i+1=>i • S6:如果i≤i≤n-1n, 返回S3,否则输出S3是素数,结束。
骤S4,S5,否则算法结束,得到最后的p的值就是1000! 的值。
算法
结构化程序设计方法
例3、判定2000-2500年中的每一年是否是闰年,将结果输出。 闰年的条件: 1.能被4整除,但是不能被100整除的年份是闰年(2008年) 2. 能被400整除的年份是闰年(2000年)
结构化程序设计方法
算法
设y为被检测的年份 • S1:2000=>y • S2:若y不能被4整除,则输出y“不是闰年”。然后转到
S6 • S3:若y能被4整除,不能被100整除,则输出y“是闰年”。
然后转到S6 • S4:若y能被400整除,输出y“是闰年”,然后转到S6 • S5:输出y“不是闰年” • S6:y+1=>y • S7:当y≤2500时,转S2继续执行,否则算法停止
循环体语句
直到判断表达式为假
结构化程序设计方法
结构化程序设计方法
算法的伪代码表示
求5!。(使用伪代码) • 开始 • 置t的初始值为1 • 置i的初始值为2 • 当i<=5,执行下面操作
使t=t*i; 使i=i+1 输出t的值 结束
结构化程序设计方法
算法的计算机语言表示
#include <stdio.h> void main() {
结构化程序设计方法
结构化程序设计基本要求
• 自顶向下,模块化设计 • 使用三种基本结构构造程序 • 程序书写规范,切勿随心所欲 • 清晰第一,效率第二
– 思路清晰 – 书写清晰(变量名、函数名、注解等) – 书写使用阶梯形
结构化程序设计方法
结构化程序设计方法
选
判 断表达式
择
真
结
语句 1
构
假 语句 2
(a)流程图 表示法
判 断表达式
真
假
语句 1
语句 2
(b)N-S图 表示法
结构化程序设计方法
当 型
循循 环环
结
构
比
较
直 到
型
循
环
结构化程序设计方法
判断表达式
假
真
循环体语句
当条件判断表达式为真
循环体语句
循环体语句
真 判断表达式 假
例:从键盘中输入100个整数,对其中的正 整数进行累加,最后输出结果
算法描述(自然语言) • 输入一个数; • 如果该数>0,累加它; • 如果100个数没有输入完,转到步骤1; • 输入完100个数后,输出累加和。
结构化程序设计方法
算法描述(流程图)
结构化程序设计方法
算法的C语句实现
结构化程序设计方法
int i,t; t=1; i=2; while(i<=5) {
t=t*i; i=i+1; } printf(“%d\n”,t); }
结构化程序设计方法
结构化程序设计方法
• 结构化程序设计情调、程序设计风格和程序结构的规 范化,提倡清晰的结构。
• 结构化程序来自百度文库用的方法: •自顶向下 •逐步细化 •模块化设计 •结构化编码
第二章 结构化程序设计方法
秦丹阳
黑龙江大学电子工程学院 通信工程系
TEL: 86608943 E-mail: qindanyang@hlju.edu.cn
第二章 结构化程序设计方法
本章主要内容: • 程序及程序设计 • 算法的概念 • 算法的特性 • 结构化程序设计方法
结构化程序设计方法
关于程序
程序=数据结构+算法
算法
结构化程序设计方法
算法:广义地说,为解决一个问题而采取的方法和 步骤。本书主要关心的为计算机算法。
计算机算法: • 数值运算算法 • 非数值运算的算法
算法
结构化程序设计方法
例1、求1*2*3*4*5
步骤1:先求1*2,得到结果2。 步骤2:将步骤1得到的乘积再乘以3,得到结果6 步骤3:将步骤2得到的乘积再乘以4,得到结果24 步骤4:将步骤3得到的乘积再乘以5,得到结果120
•总结过程
结构化程序设计方法
算法的表示
算法常用的表示方法有:
• 自然语言 • 结构化流程图 • 伪代码
结构化程序设计方法
算法的表示
自然语言 • 自然语言就是人们日常使用的语言,可以是汉语,
英语,或者其他语言。自然语言通俗易懂,但是文 字冗长,不严密。 • 例:张三对李四说他的孩子考上大学了
结构化程序设计方法
结构化程序设计方法
关于算法
好的算法
有穷性 确定性 有输入 有输出 有效性
算法 是针对 提出的可行 方案确定解决 问题、完成任务 的每一个细节 步骤。
结构化程序设计方法
关于程序设计
用程序设计语言来描述问题的求解过程,以及对其中参 与运算的数据进行合理地组织和安排,就叫做程序设计。
基 •分析问题 本 •确定算法 步 •编写程序 骤 •运行调试
结构化程序设计方法
算法
例2、求1*2*3*4*5* ······ *1000 设置2个变量,p代表被乘数,i代表乘数 S1:使p=1,即1 =>p 思考:1*3*5*7 ······ *999 S2:使i=2 ,即2 =>i S3:计算p*i,将结果放入p中,即p*i=>p S4:使i的值加1,即i+1=>i S5:如果i不大于1000,返回重新执行步骤S3以及其后的步
程序设计中的三种基本结构
• 顺序结构——自顶向下,无分支,无转移 • 选择结构——有分支,需条件判断 • 循环结构——有转移,某些语句可重复执行
– 当型循环 – 直到型循环
• 综合举例
结构化程序设计方法
顺
语句 1
序
结
构
语句 2
(a)流程图 表示法
(b)N-S图 表示法
结构化程序设计方法
步骤: • x --> temp • y --> x • temp --> y
• 程序:用编程语言编写,完成特定功能的语句的集合
• 编程步骤:
1.明确问题
2.问题
若干具体步骤(算法)
3.算法
程序
4.上机调试运行
• 算法
解题方法或解题步骤的精确描述
算法表示:文字描述、流程图和N-S流程图
关于程序
结构化程序设计方法
程序主要包含以下两个方面的内容: • 数据结构(data structure):数据的类型以及组织形式 • 算法(algorithm):对操作的描述
算法
结构化程序设计方法
例4、对于一个大于或等于3的正整数n,判断它是不是 一个素数。
• S1:输入n的值 • S2:i=2(作为除数) • S3:n被i除,得到余数r • S4:如果r=0,说明n不是素数,算法结束,否则执行S5 • S5:i+1=>i • S6:如果i≤i≤n-1n, 返回S3,否则输出S3是素数,结束。
骤S4,S5,否则算法结束,得到最后的p的值就是1000! 的值。
算法
结构化程序设计方法
例3、判定2000-2500年中的每一年是否是闰年,将结果输出。 闰年的条件: 1.能被4整除,但是不能被100整除的年份是闰年(2008年) 2. 能被400整除的年份是闰年(2000年)
结构化程序设计方法
算法
设y为被检测的年份 • S1:2000=>y • S2:若y不能被4整除,则输出y“不是闰年”。然后转到
S6 • S3:若y能被4整除,不能被100整除,则输出y“是闰年”。
然后转到S6 • S4:若y能被400整除,输出y“是闰年”,然后转到S6 • S5:输出y“不是闰年” • S6:y+1=>y • S7:当y≤2500时,转S2继续执行,否则算法停止
循环体语句
直到判断表达式为假
结构化程序设计方法
结构化程序设计方法
算法的伪代码表示
求5!。(使用伪代码) • 开始 • 置t的初始值为1 • 置i的初始值为2 • 当i<=5,执行下面操作
使t=t*i; 使i=i+1 输出t的值 结束
结构化程序设计方法
算法的计算机语言表示
#include <stdio.h> void main() {
结构化程序设计方法
结构化程序设计基本要求
• 自顶向下,模块化设计 • 使用三种基本结构构造程序 • 程序书写规范,切勿随心所欲 • 清晰第一,效率第二
– 思路清晰 – 书写清晰(变量名、函数名、注解等) – 书写使用阶梯形
结构化程序设计方法
结构化程序设计方法
选
判 断表达式
择
真
结
语句 1
构
假 语句 2
(a)流程图 表示法
判 断表达式
真
假
语句 1
语句 2
(b)N-S图 表示法
结构化程序设计方法
当 型
循循 环环
结
构
比
较
直 到
型
循
环
结构化程序设计方法
判断表达式
假
真
循环体语句
当条件判断表达式为真
循环体语句
循环体语句
真 判断表达式 假
例:从键盘中输入100个整数,对其中的正 整数进行累加,最后输出结果
算法描述(自然语言) • 输入一个数; • 如果该数>0,累加它; • 如果100个数没有输入完,转到步骤1; • 输入完100个数后,输出累加和。
结构化程序设计方法
算法描述(流程图)
结构化程序设计方法
算法的C语句实现
结构化程序设计方法
int i,t; t=1; i=2; while(i<=5) {
t=t*i; i=i+1; } printf(“%d\n”,t); }
结构化程序设计方法
结构化程序设计方法
• 结构化程序设计情调、程序设计风格和程序结构的规 范化,提倡清晰的结构。
• 结构化程序来自百度文库用的方法: •自顶向下 •逐步细化 •模块化设计 •结构化编码
第二章 结构化程序设计方法
秦丹阳
黑龙江大学电子工程学院 通信工程系
TEL: 86608943 E-mail: qindanyang@hlju.edu.cn
第二章 结构化程序设计方法
本章主要内容: • 程序及程序设计 • 算法的概念 • 算法的特性 • 结构化程序设计方法
结构化程序设计方法
关于程序