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

下载本文档

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

文档简介

1.1算法与程序框图程序框图与算法的基本逻辑结构第一章算法复习回顾:算法一词出现在12世纪,指的是用阿拉伯数字进行算术运算的过程,在数学中,算法通常是指按照一定规则解决某一类问题的明确和有限的步骤。现在,算法通常可以编成计算机程序,让计算机执行并解决。1.算法定义:2、算法的基本特征:明确性:算法中的每一个步骤都是确切的,能有效的执行且得到确定的结果,不能模棱两可。有序性:算法从初始步骤开始,分为若干明确的步骤,每一步都只能有一个确定的继任者,只有执行完前一步才能进入到后一步,并且每一步都确定无误后,才能解决问题。不唯一性:求解某一个问题的解法不一定是唯一的,对于同一个问题可以有不同的解法,但算法有优劣之分,好的算法是我们追求的目标.普适性:写出的算法必须能解决一类问题,并且能重复使用,这是设计算法的一条基本原则,这样才能使算法更有价值.有限性:算法应由有限步组成,必须在有限操作之后停止,并给出计算结果。我们为什么要学习算法?在解决某些问题时,需要设计出一系列可操作或可计算的步骤来解决问题,这些步骤称为解决这些问题的算法,也就是说算法实际上就是解决问题的一种程序性方法。算法一般是机械的,它的优点是一种通法,只要按部就班的去做,总能得到结果。因此算法式计算科学的基础。

21世纪信息社会的两个主要特征:

“计算机无处不在”“数学无处不在”

21世纪信息社会对科技人才的要求:

--会用“数学”解决实际问题--会用计算机进行科学计算11.521.251.3752+2+1.5+1-ab︱a-b︱11211.50.51.50.251.251.50.1251.375………………12+1.5+1.251.375---2+1.5+1.251--1--例2用二分法设计一个求方程x2–2=0的近似根的算法。旧知识回顾:用二分法求函数的零点2、任意给定一个大于1的正整数n,设计一个算法求出na+c>b,b+c>a是否同判断某一条件是否成立,成立时在出口处标明“是”或“Y”;在解决某些问题时,需要设计出一系列可操作或可计算的步骤来解决问题,这些步骤称为解决这些问题的算法,也就是说算法实际上就是解决问题的一种程序性方法。解决这一问题的算法是:(1)确定循环体:设a为某年的年生产总值,t为年生产总值的年增长量,n为年份,则ta,a=a+t,n=n+1.(3)设定循环控制条件:当“a>300”时终止循环.第一步,给定一个大于2的整数n;有8个小球,其中7个重量相同,仅有一个较重,教材20页习题A组3:框图如何表示?若f(a)·f(m)<0,若f(a)·f(m)<0,算法一般是机械的,它的优点是一种通法,只要按部就班的去做,总能得到结果。(1)确定循环体:设a为某年的年生产总值,t为年生产总值的年增长量,n为年份,则ta,a=a+t,n=n+1.则三角形的面积.解决问题×第四步,若f(a)·f(m)<0,则含零点的区间为[a,m];第一步,令.给定精确度d.第二步,给定区间[a,b],满足f(a)·f(b)<0.第三步,取中间点.第五步,判断[a,b]的长度是否小于d或者f(m)是否等于0.将新得到的含零点的仍然记为[a,b]

.否则,含零点的区间为[m,b].若是,则m是方程的近似解;否则,返回第三步.例3.用二分法设计一个求方程x2-2=0(x>0)的近似根的算法.(精确度为0.005)第一步:第二步:第三步:第四步:第五步:令

,给定精确度d.确定区间[a,b],满足f(a)·f(b)<0.

取区间中点m=若f(a)·f(m)<0,则含零点的区间为否则,含零点的区间为将新得到的含零点的区间仍记为[a,b];判断|a-b|<d是否成立或f(m)是否等于0.若是,则m是方程的近似解;否则,返回[a,m],[m,b].

第三步.教材5页练习:1、任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积.2、任意给定一个大于1的正整数n,设计一个算法求出n

的所有因数.1、写出过P(a1,b1)、Q(a2,b2)两点直线斜率的算法:补充练习:2、有8个小球,其中7个重量相同,仅有一个较重,用天平如何称出那个重的小球。1、任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积.第一步:第二步:第三步:给定一个正实数r;计算以r为半径的圆的面积S=πr2;得到圆的面积S.教材5页练习2、任意给定一个大于1的正整数n,设计一个算法求出n

的所有因数.第一步:第四步:第五步:给定一个大于1的正整数n.令i=1.判断“r=0”是否成立,若是,则i是n的因数,否则,i不是n的因数.使i的值增加1,仍用i表示教材5页练习第二步:第三步:用i除n,得到余数r;第六步:判断i>n是否成立,若是,则结束算法,否则返回第三步写出过P(a1,b1)、Q(a2,b2)两点直线斜率的算法:第一步:第二步:第三步:取x1=a1,y1=b1,x2=a2,y2=b2;若x1=x2,输出斜率不存在;若x1≠x2,计算第四步:输出结果。练习3算法有8个小球,其中7个重量相同,仅有一个较重,用天平如何称出那个重的小球。算法(1):把8个小球分成四组,依次将每组放在天平上,直到某一组天平不平衡,就可确定重的小球,最多需称4次。算法(2):第一步:从8个小球中任取6个小球,将这6个小球每边3个置于天平上;第二步:若天平平衡,则表明重的小球在剩余的2个小球中,只需将那两个小球放在天平上再称一次就可找到重的那个小球;第三步:若天平不平衡,则从较重的一边的3个球中任取2个球称量,若平衡,则剩下的那个即为要找的那个小球,若不平衡,则重的那边就是要找的小球。算法(2)只需2次称量,比算法(1)优越。练习4

“判断整数n(n>2)是否为质数”的算法步骤如何?如何将这些步骤更直观的表达出来呢?知识探究:算法的程序框图:第一步,给定一个大于2的整数n;第二步,令i=2;第三步,用i除n,得到余数r;第四步,判断“r=0”是否成立.若是,则第五步,判断“i>(n-1)”是否成立,若是,思考?n不是质数,结束算法;将i

的值增加1,仍用i表示;否则,则n是质数,结束算法;否则,返回第三步.开始r=0?输出“n是质数”输出“n不是质数”求n除以i的余数ri=2输入ni>n-1或r=0?是是结束否否i的值增加1,仍用i表示开始r=0?输出“n是质数”输出“n不是质数”求n除以i的余数ri=2输入ni>n-1或r=0?是是结束否否这种表示算法的图形称为算法的程序框图又称流程图,其中的多边形叫做程序框,带方向箭头的线叫做流程线,你能指出程序框图的含义吗?---用程序框、流程线及文字说明来表示算法的图形.i的值增加1,仍用i表示

在上述程序框图中,有4种程序框,2种流程线,它们分别有何特定的名称和功能?思考?图形符号

名称

功能

终端框(起止框)

输入、输出框

处理框(执行框)

判断框

流程线表示一个算法的起始和结束表示一个算法输入和输出的信息

赋值、计算判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”连接程序框,表示算法步骤的执行顺序开始r=0?输出“n是质数”输出“n不是质数”求n除以i的余数ri=2输入ni的值增加1,仍用i表示i>n-1或r=0?是是结束否否在逻辑结构上,“判断整数n(n>2)是否为质数”的程序框图由几部分组成?思考?顺序结构循环结构条件结构算法的顺序结构:步骤n步骤n+1是由若干个依次执行的步骤组成的.这是任何一个算法都离不开的基本结构,用程序框图可以表示为:

i=2输入n若一个三角形的三条边长分别为a,b,c,令,则三角形的面积.你能利用这个公式设计一个计算三角形面积的算法步骤吗?第一步,输入三角形三条边的边长a,b,c.第二步,计算.第三步,计算.第四步,输出S.开始结束输出S输入a,b,c例3:上述算法的程序框图如何表示?思考?1、任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积.第一步:第二步:第三步:给定一个正实数r;计算以r为半径的圆的面积S=πr2;得到圆的面积S.教材5页练习

思考?你能画出这个算法的程序框图吗?开始结束输出S输入r课内巩固训练1:已知P0(x0,y0)和直线l:Ax+By+C=0,写出求点P0到直线l的距离d的算法,并用程序框图来描述。第一步:第二步:第三步:输入x0,y0,A,B,C.计算输出d.开始结束输出d输入x0,y0,A,B,C

算法的条件结构:在某些问题的算法中,有些步骤只有在一定条件下才会被执行,算法的流程因条件是否成立而变化.在算法的程序框图中,由若干个在一定条件下才会被执行的步骤组成的逻辑结构,称为条件结构,用程序框图可以表示为下面两种形式:满足条件?是否步骤A步骤B满足条件?是否步骤Aa+b>c,a+c>b,b+c>a是否同时成立?任意给定3个正实数,设计一个算法,判断以这3个数为三边边长的三角形是否存在.画出这个算法的程序框图.第一步:输入3个正实数a,b,c;第二步:判断a+b>c,a+c>b,b+c>a是否同时成立,若是,则存在这样的三角形;否则,不存在这样的三角形.例4:算法步骤如下:开始输入a,b,c存在这样的三角形不存在这样的三角形结束否是设计一个求解一元二次方程ax2+bx+c=0的算法,并画出程序框图。例5:算法步骤如下:开始输入a,b,cx1=p+qx2=p-q输出x1,x2输出“方程没有实数根”输出p结束否是否是写出过P(a1,b1)、Q(a2,b2)两点直线斜率的算法:第一步:第二步:第三步:取x1=a1,y1=b1,x2=a2,y2=b2;若x1=x2,输出斜率不存在;若x1≠x2,计算第四步:输出结果。练习3

思考?你能画出这个算法的程序框图吗?

x1=x2?是否开始结束输入x1,y1,x2,y2输出斜率不存在在算法的程序框图中,由按照一定的条件反复执行的某些步骤组成的逻辑结构,称为循环结构,反复执行的步骤称为循环体,那么循环结构中一定包含条件结构吗?

算法的循环结构:循环体满足条件?是否循环体满足条件?是否在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.—直到型循环.在每次执行循环体前,对条件进行判断,如果条件满足,就执行循环体,否则终止循环—当型循环.思考4:计算1+2+3+…+100的值可按如下过程进行:第1步,0+1=1.第2步,1+2=3.第3步,3+3=6.第4步,6+4=10.……第100步,4950+100=5050.

第四步,判断i>100是否成立.若是,则输出S,结束算法;否则,返回第二步.第一步,令i=1,S=0.第二步,计算S+i,仍用S表示.第三步,计算i+1,仍用i表示.解决这一问题的算法是:思考:用直到型循环结构,这个算法的程序框图如何表示?用当型循环呢?直到型循环:开始i=1i>100?是输出S结束S=0i=i+1S=S+i否开始i=1输出S否是S=0S=S+ii≤100?i=i+1当型循环:结束练习1:当型循环结构是i≤6?开始输出S结束i=i+1S=S*i否i=2,S=1开始i>6?是输出S结束i=i+1S=S*i否直到型循环结构i=2,S=1画出1×2×3×4×5×6的程序框图练习:教材20页习题A组2:当型循环结构是i≤100?开始输出S结束i=i+1S=S+S*i2否i=1,S=0开始i>100?是输出S结束i=i+1S=S+S*i2否直到型循环结构i=1,S=0作业直到型循环:开始i=1i>100?是结束S=0i=i+1S=S+i否开始i=1否是S=0S=S+ii≤100?i=i+1当型循环:结束输入n输入n输出S输出S某工厂2005年的年生产总值为200万元,技术革新后预计以后每年的年生产总值都比上一年增长5%.设计一个程序框图,输出预计年生产总值超过300万元的最早年份.第三步,判断所得的结果是否大于300.若是,则输出该年的年份;否则,返回第二步.第一步,输入2005年的年生产总值.第二步,计算下一年的年生产总值.算法分析:(3)设定循环控制条件:当“a>300”时终止循环.(1)确定循环体:设a为某年的年生产总值,t为年生产总值的年增长量,n为年份,则ta,a=a+t,n=n+1.(2)初始化变量:n=2005,a=200.循环结构:例5:开始n=2005a=200t=0.05aa=a+tn=n+1a>300?结束输出n是否程序框图:作业:P20习题1.1B组:1.作业:P20习题1.1A组:2,3.在学习上,我们要求对实际问题能用自然语言设计一个算法,再根据算法的逻辑结构画出程序框图,同时,还要能够正确阅读、理解程序框图所描述的算法的含义,这需要我们对程序框图的画法有进一步的理解和认识.程序框图的画法:令

第一步:第二步:第三步:第四步:第五步:,给定精确度d.确定区间[a,b],满足f(a)·f(b)<0.

取区间中点m=若f(a)·f(m)<0,则含零点的区间为否则,含零点的区间为将新得到的含零点的区间仍记为[a,b];判断|a-b|<d是否成立或f(m)是否等于0.若是,则m是方程的近似解;否则,返回[a,m],[m,b].

第三步.思考?用“二分法”求方程x2-2=0(x>0)的近似解的算法如何设计?算法一词出现在12世纪,指的是用阿拉伯数字进行算术运算的过程,在数学中,算法通常是指按照一定规则解决某一类问题的明确和有限的步骤。第三步,判断所得的结果是否大于300.满足f(a)·f(b)<0.思考4:计算1+2+3+…+100的值可按如下过程进行:若f(a)·f(m)<0,连接程序框,表示算法步骤的执行顺序满足f(a)·f(b)<0.2、任意给定一个大于1的正整数n,设计一个算法求出n用天平如何称出那个重的小球。练习:第一步:从8个小球中任取6个小球,将这6个小球每边3个置于天平上;算法一般是机械的,它的优点是一种通法,只要按部就班的去做,总能得到结果。否则,含零点的区间为[m,b].的程序框图由几部分组成?第四步,判断i>100是否成立.算法一词出现在12世纪,指的是用阿拉伯数字进行算术运算的过程,在数学中,算法通常是指按照一定规则解决某一类问题的明确和有限的步骤。第一步:从8个小球中任取6个小球,将这6个小球每边3个置于天平上;该算法中哪几个步骤可以用顺序结构来表示?这个顺序结构的程序框图如何?令

第一步:第二步:第三步:第四步:第五步:,给定精确度d.确定区间[a,b],满足f(a)·f(b)<0.

取区间中点m=若f(a)·f(m)<0,则含零点的区间为否则,含零点的区间为将新得到的含零点的区间仍记为[a,b];判断|a-b|<d是否成立或f(m)是否等于0.若是,则m是方程的近似解;否则,返回[a,m],[m,b].

第三步.思考?思考?令

第一步:第二步:,给定精确度d.确定区间[a,b],满足f(a)·f(b)<0.

f(x)=x2-2输入精确度d和初始值a,b该算法中哪几个步骤可以用顺序结构来表示?这个顺序结构的程序框图如何?第三步:取区间中点m=有8个小球,其中7个重量相同,仅有一个较重,连接程序框,表示算法步骤的执行顺序满足f(a)·f(b)<0.解决这一问题的算法是:若是,则输出S,结束算法;输入x1,y1,x2,y2这种表示算法的图形称为算法的程序框图又称流程图,其中的多边形叫做程序框,带方向箭头的线叫做流程线,你能指出程序框图的含义吗?教材20页习题A组2:计算:y=5+(x-3)×1.表示一个算法的起始和结束则含零点的区间为把8个小球分成四组,依次将每组放在天平上,直到f(a)f(m)<0?思考?该算法中第四步是什么逻辑结构?这个步骤用程序框图如何表示?第四步:若f(a)·f(m)<0,否则,含零点的区间为将新得到的含零点的区间仍记为[a,b];[a,m],f(a)f(m)<0?b=m是否a=m思考?令

第一步:第二步:第三步:第四步:第五步:,给定精确度d.确定区间[a,b],满足f(a)·f(b)<0.

取区间中点m=若f(a)·f(m)<0,则含零点的区间为否则,含零点的区间为将新得到的含零点的区间仍记为[a,b];判断|a-b|<d是否成立或f(m)是否等于0.若是,则m是方程的近似解;否则,返回[a,m],[m,b].

第三步.该算法中哪几个步骤构成循环结构?这个循环结构用程序框图如何表示?第三步:第四步:第五步:取区间中点m=若f(a)·f(m)<0,则含零点的区间为否则,含零点的区间为将新得到的含零点的区间仍记为[a,b];判断|a-b|<

温馨提示

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

评论

0/150

提交评论