程序的灵魂-算法与流程图课件_第1页
程序的灵魂-算法与流程图课件_第2页
程序的灵魂-算法与流程图课件_第3页
程序的灵魂-算法与流程图课件_第4页
程序的灵魂-算法与流程图课件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程序的灵魂-算法与流程图第8章 程序的灵魂算法与流程图o 算法基础o 流程图的基础o 如何表示一个算法o 结构化程序设计方法程序的灵魂-算法与流程图8.1 算法基础8.1.1 算法的概念8.1.2 算法的特性8.1.3 简单算法举例解方程 程序的灵魂-算法与流程图8.1.1 算法的概念算法(Algorithm):将为了解决问题所制订的步骤、方法。 利用计算机涉及到两类算法问题: (1) 数值性计算问题 (2) 非数值性计算问题对算法的学习包括五个方面的内容: 设计算法、表示算法、确认算法、分析算法、验证算法程序的灵魂-算法与流程图8.1.2 算法的特性1有穷性2确定性3有效性4有零或多个输入5

2、有一个或多个输出程序的灵魂-算法与流程图8.1.3 简单算法举例解方程 【范例8-1】 计算下面的分段函数。算法描述: 输入x的值; 判断x是否大于0,若大于0,则y为2x+1,然后转第5步;否则进行第3步; 判断x是否等于0,若等于0,则y为0,然后转第5步;否则进行第4步; y为3x+1(因为2、3步条件不成立,则肯定第4步条件成立); 输出y的值后结束。 01300012xxxxxy程序的灵魂-算法与流程图8.2 流程图的基础8.2.1 流程图中的元素及含义 8.2.2 流程图的绘制 程序的灵魂-算法与流程图8.2.1 流程图中的元素及含义流程图主要用两种:传统流程图和N-S流程图。1传

3、统流程图2、N-S流程图起止框输入/输出框处理框判断框流程线连接符顺序结构元素处理AABP成立?是否AB当P成立A当P成立A选择结构元素当型循环结构元素直到型循环结构元素程序的灵魂-算法与流程图8.2.2 流程图的绘制1使用word自带的流程图绘图工具 2、使用Visio绘制工具 程序的灵魂-算法与流程图8.3 如何表示一个算法8.3.1 用自然语言表示算法 8.3.2 用流程图表示算法 8.3.3 用传统流程图表示三种基本结构 8.3.4 用N-S图表示算法 8.3.5 用伪代码表示算法 8.3.6 用计算机语言表示算法 程序的灵魂-算法与流程图8.3.1 用自然语言表示算法自然语言是最简单

4、的描述算法的工具。【范例8-2】 用自然语言描述s=1+2+.+ 100 的算法。算法描述:S1:把0放入S单元; S2:把1放入i单元;S3:将S+i赋给S;S4;i值加1;S5:判断i是否小于等于100? 是,转S3;否则转S6;S6:输出S的值,结束。程序的灵魂-算法与流程图8.3.1 用自然语言表示算法【范例8-3】判定2010-2050年中的哪一年是闰年,将结果输出。(闰年的条件是:能被4整除,但不能被100整除;或者能被400整除的年份)。算法描述:S1:将2010放入y单元;S2:若y不能被4整除,则转到S5;S3:若y能被4整除,不能被100整除,则输出y,然后转到S5;S4:

5、若y能被400整除,则输出y,然后转到S5;S5:将y +1赋给y;S6:当y2500,结束。 程序的灵魂-算法与流程图8.3.2 用流程图表示算法流程图相对于自然语言来说更直观形象,易于理解简洁直观。一个流程图包括以下几部分: 表示相应操作的框; 带箭头的流程线; 框内外必要的文字说明 程序的灵魂-算法与流程图8.3.2 用流程图表示算法一个流程图包括以下几部分: 表示相应操作的框; 带箭头的流程线; 框内外必要的文字说明。【范例8-4】 求区间100, 200内10个随机整数中的最大数、最小数。 开始结束产生第1个随机数a1maxaii10?minaimaxa1 mina1是否输出max,

6、min产生下1个随机数aimaxai?否是是程序的灵魂-算法与流程图8.3.3 用传统流程图表示三种基本结构1、顺序结构 2、选择结构AB条件?AB成立不成立程序的灵魂-算法与流程图8.3.3 用传统流程图表示三种基本结构3、循环结构条件?A成立不成立当型循环A条件?成立不成立直到型循环程序的灵魂-算法与流程图8.3.4 用N-S图表示算法1、顺序结构 2、选择结构AB成立PAB不成立程序的灵魂-算法与流程图8.3.4 用N-S图表示算法3、循环结构当P成立A直到P不成立A当型循环直到型循环程序的灵魂-算法与流程图8.3.4 用N-S图表示算法【范例8-5】 求两个数的最大公约数。求最大公约数

7、通常用“辗转相除法”,方法如下:(1)比较两数,并使m大于n。(2)将m作被除数,n作除数,相除后余数为r。(3)将mn,nr;(4)若r=0,则m为最大公约数,结束循环。若r0,执行步骤步骤(2)和(3)。输入m,nm=0?x1=x+sqrt(d)/(2a)x2=x- sqrt(d)/(2a)x1=x+sqrt(-d)/(2a)x2=x- sqrt(-d)/(2a)NYd=b2-4acx=-b/(2a)程序的灵魂-算法与流程图8.5 综合应用求一元二次方程的根 【范例8-7】求一元二次方程:ax2+bx+c=0的根。输入a,b,c的值输出结果a=0?x1=x2=-c/bNYd=0?x1=x+sqrt(d)/(2a)x2=x- sqrt(d)/(2a)x2=x-sqrt(-d)/(2a)x1=x+ sqrt(-d)/(2a)NYd=b2-4acx=-b/(2a)程序的灵魂-算法与流程图8.7 跟我上机1. 求1!+3!+5!+N!的值。N由键盘输入,且为奇数。输入n的值开始结束i赋值为1t赋初值为1sum赋初值为0i+=2t*=i;sum+=t;in?YN输出sum用流程图表示用N-S图表示输入n的值t赋初值为1;i赋值为1sum赋初值为0in?t*=I; s+=t;i+=2输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论