版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法的流程图学习技巧与讲解本章学习目标理解算法的概念了解算法的表示方法掌握流程图的绘制方法掌握三种基本结构的流程图了解结构化程序设计方法/内容进度算法算法的表示方法自然语言传统流程图N-S流程图伪代码计算机语言各种表示方法的比较结构化程序设计方法文档和注释/算法的引入问题:计算矩形的周长第一步:定义三个变量存储长、宽和周长第二步:提示用户输入矩型的长和宽第三步:计算周长,两个长加上两个宽第四步:打印计算结果算法的定义:解决问题所使用的一系列合乎逻辑的、简洁的步骤。lengthwidth/算法与程序关系著名科学家沃思(NikiklausWirth)的公式:数据结构+算法=程序扩充后的公式:数据结构+算法+程序设计方法+语言和环境=程序算法是灵魂,数据结构是加工对象,语言是工具,程序设计方法是使用手段。/算法的特性有穷性确定性有效性有零个或多个输入有一个或多个输出/算法的分析与优化分析程序的算法设计,应先看主流程图,再逐步细化地分析了解算法是否实现了任务需求,方法是否合理性能上是否存在瓶颈,能否被优化如果有多个输入条件,处理时是否覆盖了全部输入条件如果有多个输出结果,其输出是否被系统所定义和处理/内容进度算法算法的表示方法自然语言传统流程图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规定的常用流程图符号:起始框输入/输出框判断框处理框流程线连接点注释框/三种基本结构顺序结构选择结构ABPYNAB/三种基本结构循环结构PAY当型(while)循环结构NPAYN直到型(until)循环结构/应用举例优点:比较清晰,可以解决任何复杂的问题缺点:流程图比较长,基本结构之间的流程线多余/内容进度算法算法的表示方法自然语言传统流程图N-S流程图伪代码计算机语言各种表示方法的比较结构化程序设计方法文档和注释/N-S流程图美国学者I.Nassi和B.shneiderman提出流程图符号:AB顺序结构PYNAB选择结构当P成立A当型循环结构A直到P成立直到型循环结构/应用举例y+1=>y打印“非闰年”优点:直观易懂缺点:画起来比较麻烦,不易修改/内容进度算法算法的表示方法自然语言传统流程图N-S流程图伪代码计算机语言各种表示方法的比较结构化程序设计方法文档和注释/伪代码BEGIN(算法开始) 2000=>y whiley<=2500 {ify能被4整除 ify不被100整除 printy:”是闰年” else ify能被400整除 printy:”是闰年” else printy:”非闰年” endif endif else printy:”非闰年” endify+1=>y }END(算法结束)/内容进度算法算法的表示方法自然语言传统流程图N-S流程图伪代码计算机语言各种表示方法的比较结构化程序设计方法文档和注释/#include<stdio.h>voidmain(){inty=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流程图伪代码计算机语言各种表示方法的比较结构化程序设计方法文档和注释/表示方法优点缺点自然语言通俗易懂文字冗长,含义不太严格,容易出现歧义流程图比较清晰,可以解决任何复杂的问题流程图比较长,基本结构之间的流程线多余N-S流程图直观易懂画起来比较麻烦,不易修改伪代码书写比较自由,容易表达思想,容易修改不太直观,容易出现逻辑上的错误计算机语言表示直接在计算机上可以运行,得到结果必须严格遵守所用语言的语法规则各种表示方法比较/绘制流程图应该注意的事项一个流程图只有一个入口点和一个出口点;主要画出问题的逻辑处理过程,无需将每一步都画的很详细;如果算法很复杂,则可以先画出大的逻辑关系,再把一些关键处理步骤细化成的流程图;流程图在跨页时,需要在流程线上标注出号码,以便在下一页找出对应关系;让编程人员或读者能够容易读懂流程图。/内容进度算法算法的表示方法自然语言传统流程图N-S流程图伪代码计算机语言各种表示方法的比较结构化程序设计方法文档和注释/结构化程序设计方法C语言是结构化程序设计方法优点:程序便于编写、阅读、修改、维护程序可靠性较好,质量较高主要有两种:自顶向下、逐步细化、模块化设计、结构化编码把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。例如,建筑楼房。优点:程序结构周全、层次分明、容易设计,读者易理解,且修改方便。自下而上、逐步积累先处理细节和小的地方,然后再组织起来形成系统。缺点:很难考虑周全,往往只注意细节,而容易忽略全局,不符合一般人的思路。/应用举例机票预定系统预订机票系统客户信息管理机票查询机票打印/应用举例逐
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年活动视频剪辑服务合同
- 2026年网站维护合同协议2026
- 土地承包经营权合同2026年分配协议
- 2026年薪资变更合同
- 云服务器租用合同2026年技术支持
- 《信息技术基础(上册)》课件 模块三课题五
- 家用电器和用火安全课件
- 家校社家长培训课件
- 培训课件质量要求
- 教练安全道德课件
- 20G520-1-2钢吊车梁(6m-9m)2020年合订本
- 范里安-微观经济学:现代观点1
- GB/T 18659-2023封闭管道中流体流量的测量电磁流量计使用指南
- 商业银行经营学(第六版)全书电子教案
- 九九乘除法口诀空表(A4打印版)
- 天线产品及技术培训材料
- 哈弗H7保养手册
- 化工原理课程设计-乙醇-水体系常压二元填料精馏塔设计
- 110kv变电站安全距离110kv变电站设计规范
- 机场ppt课件 140414-机场灯光
- 材料力学课件压杆的稳定性
评论
0/150
提交评论