计算机算法讲解的ppt,算法的流程图学习技巧与讲解.ppt
《算法的流程图学习技巧与讲解.ppt》由会员分享,可在线阅读,更多相关《算法的流程图学习技巧与讲解.ppt(32页珍藏版)》请在人人文库网上搜索。
1、,第2章、程序的灵魂 算法,/,本章学习目标,理解算法的概念 了解算法的表示方法 掌握流程图的绘制方法 掌握三种基本结构的流程图 了解结构化程序设计方法,/,内容进度,算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释,/,算法的引入,问题:计算矩形的周长 第一步:定义三个变量存储长、宽和周长 第二步:提示用户输入矩型的长和宽 第三步:计算周长,两个长加上两个宽 第四步:打印计算结果 算法的定义: 解决问题所使用的一系列合乎逻辑的、简洁的步骤。,length,width,/,算法与程序关系,著名科学家沃思(Nikik。
2、laus Wirth)的公式: 数据结构算法程序 扩充后的公式: 数据结构算法程序设计方法语言和环境程序 算法是灵魂,数据结构是加工对象,语言是工具,程序设计方法是使用手段。,/,算法的特性,有穷性 确定性 有效性 有零个或多个输入 有一个或多个输出,/,算法的分析与优化,分析程序的算法设计,应先看主流程图,再逐步细化地分析 了解算法是否实现了任务需求,方法是否合理 性能上是否存在瓶颈,能否被优化 如果有多个输入条件,处理时是否覆盖了全部输入条件 如果有多个输出结果,其输出是否被系统所定义和处理,/,内容进度,算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表。
3、示方法的比较 结构化程序设计方法 文档和注释,/,算法的表示方法,案例:判断20002500年中的每一年是否为闰年。 闰年的条件: 能被4整除,但不能被100整除的年份; 能被100整除,又能被400整除的年份;,/,自然语言,自然语言描述: 设y为被检测的年份,则算法可表示如下: S1:2000y; S2:若y不能被4整除,则输出y“不是闰年”,然后转到S6; S3:若y能被4整除,不能被100整除,则输出y“是闰年”,然后转到S6; S4:若y能被100整除,又能被400整除,输出y“是闰年” ,然后转到S6; S5:输出y“不是闰年”,然后转到S6; S6:y+1y; S7:当y2500。
4、时, 返回S2继续执行,否则结束。,/,自然语言,使用自然语言描述算法的优缺点: 优点: 通俗易懂 缺点: 文字冗长 含义不太严格,容易出现歧义,/,内容进度,算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释,/,传统流程图,用一些图框表示指令或活动的各种操作流程 ANSI规定的常用流程图符号:,/,三种基本结构,顺序结构 选择结构,/,三种基本结构,循环结构,/,应用举例,优点: 比较清晰,可以解决任何复杂的问题 缺点: 流程图比较长,基本结构之间的流程线多余,/,内容进度,算法 算法的表示方法 自然语言 传统流。
5、程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释,/,N-S流程图,美国学者I.Nassi和B.shneiderman提出 流程图符号:,/,应用举例,优点: 直观易懂 缺点: 画起来比较麻烦,不易修改,/,内容进度,算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释,/,伪代码,BEGIN(算法开始) 2000y while yy END(算法结束),/,内容进度,算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设。
6、计方法 文档和注释,/,#include void main() int y=2000; while (y=2500) if(y%4)=0) if(y%100!=0) printf( %d 年是闰年n,y); else if(y%400=0) printf( %d 年是闰年n,y); else printf( %d 年是非闰年n,y); else printf( %d 年是非闰年n,y); y=y+1; ,计算机语言,/,内容进度,算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释,/,各种表示方法比较,/,绘制流程。
7、图应该注意的事项,一个流程图只有一个入口点和一个出口点; 主要画出问题的逻辑处理过程,无需将每一步都画的很详细; 如果算法很复杂,则可以先画出大的逻辑关系,再把一些关键处理步骤细化成的流程图; 流程图在跨页时,需要在流程线上标注出号码,以便在下一页找出对应关系; 让编程人员或读者能够容易读懂流程图。,/,内容进度,算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法 文档和注释,/,结构化程序设计方法,C语言是结构化程序设计方法 优点: 程序便于编写、阅读、修改、维护 程序可靠性较好,质量较高 主要有两种: 自顶向下、逐步细化、模块化设计、结构化编码 把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。例如,建筑楼房。 优点:程序结构周全、层次分明、容易设计,读者易理解,且修改方便。 自下而上、逐步积累 先处理细节和小的地方,然后再组织起来形成系统。 缺点:很难考虑周全,往往只注意细节,而容易忽略全局,不符合一般人的思路。,/,应用举例,机票预定系统,/,应用举例,逐步细化,客户信息管理,机票打印,/,机票查询,有航班,无航班,应用举例,/,算法 算法的表示方法 自然语言 传统流程图 N-S流程图 伪代码 计算机语言 各种表示方法的比较 结构化程序设计方法,本章内容总结。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
