设计计算机n阶段的流程图,第六讲、算法和流程图.ppt

第六讲、算法和流程图

/ 第2章、程序的灵魂—— 算法 本章学习目标 理解算法的概念 了解算法的表示方法 掌握流程图的绘制方法 掌握三种基本结构的流程图 了解结构化程序设计方法 内容进度 算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释 算法的引入 问题:计算矩形的周长 第一步:定义三个变量存储长、宽和周长 第二步:提示用户输入矩型的长和宽 第三步:计算周长,两个长加上两个宽 第四步:打印计算结果 算法的定义: 解决问题所使用的一系列合乎逻辑的、简洁的步骤。 算法与程序关系 著名科学家沃思(Nikiklaus Wirth)的公式: 数据结构+算法=程序 扩充后的公式: 数据结构+算法+程序设计方法+语言和环境=程序 算法是灵魂,数据结构是加工对象,语言是工具,程序设计方法是使用手段。 算法的特性 有穷性 确定性 有效性 有零个或多个输入 有一个或多个输出 算法的分析与优化 分析程序的算法设计,应先看主流程图,再逐步细化地分析 了解算法是否实现了任务需求,方法是否合理 性能上是否存在瓶颈,能否被优化 如果有多个输入条件,处理时是否覆盖了全部输入条件 如果有多个输出结果,其输出是否被系统所定义和处理 内容进度 算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释 算法的表示方法 案例:判断2000~2500年中的每一年是否为闰年。 闰年的条件: 能被4整除,但不能被100整除的年份; 能被100整除,又能被400整除的年份; 自然语言 自然语言描述: 设y为被检测的年份,则算法可表示如下: S1:2000→y; S2:若y不能被4整除,则输出y“不是闰年”,然后转到S6; S3:若y能被4整除,不能被100整除,则输出y“是闰年”,然后转到S6; S4:若y能被100整除,又能被400整除,输出y“是闰年” ,然后转到S6; S5:输出y“不是闰年”,然后转到S6; S6:y+1→y; S7:当y≤2500时, 返回S2继续执行,否则结束。 自然语言 使用自然语言描述算法的优缺点: 优点: 通俗易懂 缺点: 文字冗长 含义不太严格,容易出现歧义 内容进度 算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释 传统流程图 用一些图框表示指令或活动的各种操作流程 ANSI规定的常用流程图符号: 三种基本结构 顺序结构 选择结构 三种基本结构 循环结构 应用举例 优点: 比较清晰,可以解决任何复杂的问题 缺点: 流程图比较长,基本结构之间的流程线多余 内容进度 算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释 N-S流程图 美国学者I.Nassi和B.shneiderman提出 流程图符号: 内容进度 算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释 伪代码 内容进度 算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释 计算机语言 内容进度 算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释 各种表示方法比较 绘制流程图应该注意的事项 一个流程图只有一个入口点和一个出口点; 主要画出问题的逻辑处理过程,无需将每一步都画的很详细; 如果算法很复杂,则可以先画出大的逻辑关系,再把一些关键处理步骤细化成的流程图; 流程图在跨页时,需要在流程线上标注出号码,以便在下一页找出对应关系; 让编程人员或读者能够容易读懂流程图。 内容进度 算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释 结构化程序设计方法 C语言是结构化程序设计方法 优点: 程序便于编写、阅读、修改、维护 程序可靠性较好,质量较高 主要有两种: 自顶向下、逐步细化、模块化设计、结构化编码 把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。例如,建筑楼房。 优点:程序结构周全、层次分明、容易设计,读者易理解,且修改方便。 自下而上、逐步积累 先处理细节和小的地方,然后再组织起来形成系统。 缺

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值