程序框图与算法的基本逻辑结构_第1页
程序框图与算法的基本逻辑结构_第2页
程序框图与算法的基本逻辑结构_第3页
程序框图与算法的基本逻辑结构_第4页
程序框图与算法的基本逻辑结构_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、 算法步骤有明确的顺序性,而且有些步骤只算法步骤有明确的顺序性,而且有些步骤只 有在一定条件下才会被执行,有些步骤在一定条有在一定条件下才会被执行,有些步骤在一定条 件下会被重复执行件下会被重复执行. .算法可以用自然语言来描述,算法可以用自然语言来描述, 但为了使算法的程序或步骤表达得更为直观、准但为了使算法的程序或步骤表达得更为直观、准 确,我们更经常地用图形方式来表示它。确,我们更经常地用图形方式来表示它。 程序框图又称流程图,是一种用程序框、流程序框图又称流程图,是一种用程序框、流 程线及文字说明来表示算法的图形程线及文字说明来表示算法的图形 一个程序框图包括以下几部分:表示相应操一个

2、程序框图包括以下几部分:表示相应操 作的程序框;带箭头的流程线;程序框外必要的作的程序框;带箭头的流程线;程序框外必要的 文字说明。文字说明。 1.程序框图 图形符号图形符号名名 称称功功 能能 终端框(起止框)终端框(起止框) 一个算法的起始和结束一个算法的起始和结束 输入、输出框输入、输出框 一个算法输入和输出的信息一个算法输入和输出的信息 处理框(执行框)处理框(执行框) 赋值、计算赋值、计算 判断框判断框 判断某一条件是否成立,出判断某一条件是否成立,出 口成立标口成立标“是是”不成立标不成立标 “否否” 流程线流程线 连接程序框连接程序框 连接点连接点 连接程序框图的两部分连接程序框

3、图的两部分 或或 构成程序框的图形符号及其作用构成程序框的图形符号及其作用 开始 输入n i=2 求n除以i的余数r i的值增加1,仍用i表示 in-1或r=0? r=0? N不是质数 N是质数 结束 是 否 是否 判断整数n(n2)是否为质数 程序框图范例: in-1且r0 in-1,r 0 i n-1,r=0 in-1,r=0 学习这部分知识的时候,要掌握各个图形的 形状、作用及使用规则,画程序框图的规则如下: 1、使用标准的图形符号。 2、框图一般按从上到下、从左到右的方向画。 3、除判断框外,大多数流程图符号只有一个进入 点和一个退出点。判断框是具有超过一个退出 点的唯一符号。 4、判

4、断框分两大类,一类判断框是“是”与“否”两分 支的判断,而且有且仅有两个结果;另一类是 多分支判断,有几种不同的结果。 5、在图形符号内描述的语言要非常简练清楚。 开始 输入n i=2 求n除以i的余数r i的值增加1,仍用i表示 in-1或r=0? r=0? N不是质数 N是质数 结束 是 否 是否 开始 结束 求n除以i的余数r i的值增加1,仍用i表示 in-1或r=0? 是 否 r=0? N不是质数 N是质数 是否 输入n i=2 顺序结构 循环结构 条件结构 2.2.算法的三种基本逻辑结构:顺序结构、条件结构、循环结构。 求n除以i的余数r i的值增加1,仍用i表示 in-1或r=0

5、? 是 否 r=0? N不是质数 N是质数 是否 输入n i=2 顺序结构 循环结构 条件结构 算法千差万别,但都是由这 三种基本逻辑结构构成的. 你能说出这三种基本逻辑结构的特点吗? 条件结构与循环结构有什么区别和联系? (1 1)顺序结构)顺序结构 顺序结构是最简单的算法结构,语句与语句 之间,框与框之间是按从上到下的顺序进行的, 它是由若干个依次执行的处理步骤组成的,它是 任何一个算法都离不开的一种基本算法结构。 顺序结构在程序框图中的体现就是用流程线 将程序框自上而下地连接起来,按顺序执行算法 步骤。 步骤n 步骤n1 例例3 3、已知一个三角形的三边分别为a、b、c, 利用海伦公式设

6、计一个算法,求出它的面积,并画 出算法的程序框图。 算法步骤:(自然语言) 第一步,输入三角形三条边的边长a,b,c. 第二步,计算p . 第三步,计算S a+b+c 2 .p(p-a)(p-b)(p-c) 第四步,输出S. 开始 输入a,b,c 结束 p a + b + c 2 S.p(p - a)(p - b)(p - c) 输出S 算法步骤:(自然语言) 第一步,输入三角形三条 边的边长a,b,c. 第二步,计算p=. 第三步,计算S= 第四步,输出S. (2 2)条件结构)条件结构 在一个算法中,经常会遇到一些条件的判断, 算法的流程根据条件是否成立有不同的流向.条件 结构就是处理这种

7、过程的结构. 分类是算法中经常发生的事情,条件结构的 主要作用就是表示分类. 条件结构可用程序框图表示为下面两种形式. 步骤A步骤B 满足条件? 否 是 步骤A 满足条件? 否 是 例4 任意给定3个正 实数,设计一个算法,判 断分别以这3个数为三 边边长的三角形是否存 在.画出这个算法的程 序框图. 开始 输入a,b,c a+bc,a+cb,b+ca 是否同时成立? 存在这样的 三角形 不存在这样 的三角形 结束 否否 是是 条件结构 算法步骤如下: 第一步,输入3个正实数a,b,c. 第二步,判断a+bc,a+cb, b+ca是否同时成立. 若是,则存在这样的三角形; 否则,不存这样的三角

8、形. 输入a,b,c 存在这样的 三角形 否否 是是 条件结构 不存在这样 的三角形 c+ab? b+ca? a+bc? 是是 是是 开始 结束 否否 否否 例5 设计一个求解一元二次方程 算法步骤: 第一步,输入a,b,c. 第二步,计算判别式=b24ac. 第三步,判断0是否成立. 若是,则计算p,q的值. 否则,输出“方程没有实数 根”,结束算法. 开 始 输入a,b,c =b24ac x1=p+q x2=p-q 0? 0? 输出x1,x2 输出p 方程无实数根 结 束 是 否 是 否 的算法,并画出程序框图表示. 0 2 cbxax 2 q a 第四步,判断0是否成立. 若是,则输出

9、12 ;xxp 否则,计算两根并输出. 2 b p a 开 始 输入a,b,c = 4ac 0? 0? 输出 , 结 束 方程无实数根 输出x 1 x 2 b 2 b a 2 2 b x a 1 x 2 x 2 b x a 否 是 是 否 例5程序框图也可设计为 (3)循环结构 循环结构指的是按照一定的条件反复执行的某些算法步骤. 反复执行的步骤称为循环体. 循环体 满足条件? 否 是 循环体 满足条件? 否 是 执行一次循环体后,对条件进行 判断,如果条件不满足,就继续执行 循环体,直到条件满足时终止循环. 在每次执行循环体前,对条件进行 判断,当条件满足,执行循环体,否则 终止循环. 例6

10、 设计一个计算1+2+3+100的值的算法,并画 出程序框图. 第一步:确定首数a,尾 数b,项数n; 第二步:利用公式“S=n (a+b) /2” 求和; 第三步:输出求和结果。 算法1: 开始 结束 输入a,b,n S=n (a+b) /2 输出S 开始 i=1 S=0 i=i+1 S=S+i i100? 输出S 结束 否 是 例6 设计一个计算 1+2+3+100的值的算法, 并画出程序框图. 第1步,011. 第2步,123. 第3步,336. 第4步,6410. 第100步,49501005050. 算法2: 第一步,令i1,S0. 第二步,若i 100成立,则执 行第三步;否则,输

11、出S,结束算法. 第三步,SSi. 第四步,i=i+1,返回第二步. 当型循环结构 结束 S=S+i i=i+1 S2000? 输出i-1 是 否 i=1:S=0 开始 结束 输出S i=1:S=0 开始 S = S + i i=i+ 1 i100? 否 是 循环结构 直到型结构当型结构 例6 设计一个计算1+2+3+100的值的算法,并画 出程序框图. i = i + 1 Sum=Sum + i 解决方法就是加上一个判断, 判断是否已经加到了100,如果加到 了则退出,否则继续加。 直到型结构 当型结构 i = i + 1 Sum=Sum + i 是 否 i = i + 1 Sum=Sum

12、+ i 否 是 i100?i=100?i=100? 请填上判断的条件。 在解题的过程中,用累加变量S表示 每一步的计算结果,即把S+i的结果仍记 为S,从而把第i步表示为S=Si,其中S 的初始值为0,i依次取1,2,100. 由于i同时记录了循环的次数,所以也称 为计数变量. 循环结构中都有一个计数变量和累加变量, 计数变量用以记录循环次数,同时它的取值还 用于判断循环是否终止,累加变量用于输出结 果,累加变量和计数变量一般是同步执行的, 累加一次,计数一次. P15. 设计一个算法,表示输出 1,12,123, 12 3(n-1)+n(nN*)的过程. 结束 开始 S=0 i=1 S=S+

13、i i=i+1 in Y Y N N 输入n 输出S 第一步,令i=1,S=0. 第二步,计算S=S+i. 第三步,计算i=i+1. 第四步,判断in是否成立, 若是,则输出S;否则返回第二步. 例7 某工厂2005年的年生产总值为 200万元,技术革新后预计以后每年的年 生产总值都比上一年增长5.设计一个程 序框图,输出预计年生产总值超过300万 元的最早年份. 算法步骤: 第一步,输入2005年的年生产总值. 第二步,计算下一年的年生产总值. 第三步,判断所得的结果是否大于 300.若是,则输出该年的年份;否则,返 回第二步. 结束 开始 输出n a=200 t=0.05a a=a+t n

14、=n+1 a300? Y Y n=2005 N N (1)确定循环体:设a为某年的年生产 总值,t为年生产总值的年增长量,n为 年份,则循环体为t=0.05a,a=a+t,n=n+1. (2)初始化变量: n=2005, a=200. (3)循环控制条件: a300 结束 开始 输出n a=200 t=0.05a a=a+t n=n+1 a300? Y Y n=2005 N N 结束 开始 输出n a=200 t0.05a aa+t nn+1 a300? N N n=2005 Y Y 直到型当型 小结 1、循环结构的特点 2、循环结构的框图表示 3、循环结构该注意的问题 避免死循环的出现,设置

15、好进入(结束) 循环体的条件。 当型和直到型 重复同一个处理过程 开始 m=(a+b)/2 a=m b=m f(a)f(m)0? |a-b|d或f(m)=0? 结束 输出所求的近似根m f(x)= x22 是 否 是 输入d,a,b 否 设计一个算法,求关于x的方程x220 的根(精确度为d),并画出程序框图. 算法步骤: 第一步,f(x)=x2-2,f(a)0. 第二步,令m=(a+b)/2,判断f(m)是 否为0,若是,则m为所求,否则, 继续判断f(a)f(m)大于0还是小于0. 第三步,若f(a)f(m) 0,则令b=m, 否则令a=m. 第四步,判断|a-b|=100? 否 是 输出

16、5 a 开始 i=i+1 i=1 输入误差d 结束 md? 将 的到小数点后第i位的不足近似值,记为a.2 将 的到小数点后第i位的过剩近似值,记为b.2 55 ba m 是 否 设计一个用有理指数幂逼近 无理数指数幂 的算法,并 估计 的近似值,画出算法的 程序框图. 2 5 2 5 P20练习 算法步骤: 第一步,给定精确度d,令i1. 第二步,取出 的到小数点后第 i位的不足近似值,记为a.再取出 它的到小数点后第i位的过剩近似 值,记为b. 2 第三步,计算 .55 ba 第四步,若m 7. 开始 输入用水量 y =1.2x 输出水费y 结束 0 x7? 1.94.9yx 是 否 P.

17、20习题习题A组第组第1题题 求 的值 2222 1299100 解:算法步骤: 第一步,令i=1,s=0. 第二步,若成立,则执行第三步, 否则,输出s. 第三步,计算s=s+i2 第四步,计算i=i+1,返回第二步. 开始 i=1 S=0 i=i+1 S=S+i2 i100? 输出S 结束 否 是 当型循环结构 P.20习题习题A组第组第2题题 输入x 开始 x3? y=1.2x+1.4y=5 输出y 结束 N N Y Y P.20习题习题A组第组第3题题 算法步骤: 第一步,输入人数x,设收取的卫生费 为y元. 第二步,判断x与3的大小,若x3,则 费用为m= 5(x-3)1.2=1.2x+1.4; 若x3,则费用为m5. 第三步,输出m. 开始 输入a1,b1,c1, a2 。b2, c2 输出“x=”;x ,“y=”;y a1b2a2b10? x=(c2b1 c1b2)/(a1b2 a2b1) y=(c2b1 c1b2)/(a1b2 a2b1) 结束 N N Y Y 输出“输入数据不合题意 P.20习题习题1.1B组第组第1题题 算法步骤: 第一步,输入a1,b1

温馨提示

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

评论

0/150

提交评论