《人教A版高中数学必修三112程序框图与算法的基本逻辑结构课件1共28张》由会员分享,可在线阅读,更多相关《人教A版高中数学必修三112程序框图与算法的基本逻辑结构课件1共28张(28页珍藏版)》请在金锄头文库上搜索。
1、1.1.2 程序框图与算法的基本逻辑结构程序框图与算法的基本逻辑结构 从上节课我们知道从上节课我们知道:算法可以用自然语言来描述算法可以用自然语言来描述. 任意给定一个大于任意给定一个大于2的整数的整数n,试设计一个程序或试设计一个程序或步骤对步骤对n是否为质数做出判定是否为质数做出判定. 算法分析算法分析: ?第一步,给定大于2的整数n ?第二步,令i=2 第三步,用i除n,得到余数r 第四步,判断“r=0”是否成立,若是,则n不是质数,结束算法;否则令i=i+1 第五步,判断“i(n-1)”是否成立,若是,则n是质数,结束算法;否则返回第三步 ?设设n是一个是一个大于大于2的整的整输入输入
2、n 数数. 一一般用般用i=2 i=i+1表表示示. 求求n除以除以i的余数的余数r 开始开始 i=i+1 否否 in-1或或r=0? 是是 否否 r=0? 是是 n是质数是质数” 输出输出“n不是质数不是质数”输出输出“ 结束结束 思考思考?通过上述算法的两种不同表达方式的比较通过上述算法的两种不同表达方式的比较,你觉得用程序框图来表达算法有哪些特点你觉得用程序框图来表达算法有哪些特点? 用程序框图表示的算法更加简练用程序框图表示的算法更加简练,直观直观,流向清楚流向清楚. 程序框图程序框图又称又称流程图流程图,是一种用程序框、流是一种用程序框、流程线及文字说明来准确、直观地表示算法的图程线
3、及文字说明来准确、直观地表示算法的图形形. 一个或几个程序框的组合表示算法中的一个步骤一个或几个程序框的组合表示算法中的一个步骤; 带有方向箭头的流程线将程序框连接起来带有方向箭头的流程线将程序框连接起来,表示表示算法步骤的执行顺序算法步骤的执行顺序. 基本的程序框和它们各自表示的功能如下基本的程序框和它们各自表示的功能如下: 图形符号图形符号 名称名称 终端框终端框(起止框起止框) 输入、输入、输出框输出框 处理框处理框(执行框执行框) 判断框判断框 流程线流程线 连接点连接点 功能功能 表示一个算法的起表示一个算法的起始和结束始和结束 表示一个算法输入表示一个算法输入和输出的信息和输出的信
4、息 赋值、计算赋值、计算 判断某一条件是否成立判断某一条件是否成立,成立时成立时在出口处标明在出口处标明“是是”或或“Y”;不不”成立时标明成立时标明“否否”或或“N”. 连接程序框连接程序框 连接程序框图的两部分连接程序框图的两部分 开始开始 输入输入n 用程序框图来表示算法,有三种不同用程序框图来表示算法,有三种不同的基本逻辑结构:的基本逻辑结构: 顺序结构顺序结构 i=2 求求n除以除以i的余数的余数r i=i+1 in-1或或r=0? 否否 条件结构条件结构 输出输出“n是质数是质数” 循环结构循环结构 是是 否否 r=0? 是是 输出输出“n不是质数不是质数” 结束结束 程序框图的三
5、种基本的逻辑结构程序框图的三种基本的逻辑结构 顺序结构顺序结构 条件结构条件结构 循环结构循环结构 (1)顺序结构顺序结构-是由若干个依次执行的处理步骤是由若干个依次执行的处理步骤组成的组成的.这是任何一个算法都离不开的基本结构这是任何一个算法都离不开的基本结构. 例例1:已知一个三角形的三边边长分别为已知一个三角形的三边边长分别为a,b,c,利用海伦利用海伦-秦九韶公式设计一个算法秦九韶公式设计一个算法,求出它的求出它的面积面积,画出算法的程序框图画出算法的程序框图. S?p(p? a)(p? b)(p? c)a? b? cp ?2例例1:已知一个三角形的三边边长分别为已知一个三角形的三边边
6、长分别为a,b,c,利用海伦利用海伦-秦九韶公式设计一个算法秦九韶公式设计一个算法,求出它的求出它的面积面积,画出算法的程序框图画出算法的程序框图. 算法分析算法分析: 第一步:输入三角形三条边的边长第一步:输入三角形三条边的边长a,b,c 第二步第二步:计算计算p的值的值. 第三步第三步:由海伦由海伦-秦九韶公式求出三角形的面积秦九韶公式求出三角形的面积S. 第四步第四步:输出输出S的值的值. 画出画出:已知三角形的三已知三角形的三边长边长a,b,c, 求它的面积求它的面积的程序框图的程序框图. 开始开始 输入输入a,b,c a? b? cp ?2S?p(p? a)(p? b)(p? c)输
7、出输出S 结束结束 (2)条件结构条件结构-在一个算法中在一个算法中,经常会遇到一些条经常会遇到一些条件的判断件的判断,算法的流向根据条件是否成立有不同算法的流向根据条件是否成立有不同的流向的流向.条件结构就是处理这种过程的结构条件结构就是处理这种过程的结构. 否否 满足条件?满足条件? 是是 步骤步骤A 满足条件?满足条件? 是是 否否 步骤步骤B 步骤步骤A 例例2:任意给定任意给定3个正实数个正实数,设计一个算法设计一个算法,判断分判断分别以这别以这3个数为三边边长的三角形是否存在个数为三边边长的三角形是否存在.画画出这个算法的程序框图出这个算法的程序框图. 算法分析算法分析: 第一步第
8、一步:输入输入3个正实数个正实数a,b,c; 第二步第二步:判断判断a+bc,a+cb,b+ca是否同时成立是否同时成立,若若是是,则能组成三角形则能组成三角形;若否若否,则组不成三角形则组不成三角形. 程序框图程序框图: 开始开始 输入输入a,b,c a+bc,a+cb,b+ca 是否是否 同时成立同时成立? 是是 存在这样的存在这样的 三角形三角形 结束结束 否否 不存在这样的不存在这样的 三角形三角形 例例3.画程序框图画程序框图,对于输入的对于输入的x值值,输出相应的输出相应的y值值. 开始开始 输入输入x x0? 否否 程序框图程序框图 是是 ?0(x? 0)?y ?1(0? x?
9、1)?x(x? 1)?是是 0x1? 否否 y=x y=1 输出输出y y=0 结束结束 例4:设计一个求解一元二次方程ax ? bx? c? 0的算法,并画出程序框图.2算法步骤如下:算法步骤如下: 第一步:输入3个系数a,b,c 第二步:计算? ? b ? 4ac2b?第三步:判断? ? 0是否成立.若是,则计算p ? ?,q?;2a2a否则,输出“方程没有实数根”,结束算法.第四步:判断? ? 0是否成立.若是,则输出x1? x2? p;否则,计算x1? p? q,x2? p? q,并输出x1,x2开始 输入a,b,c ? ? b2? 4 ac是 ? ? 0?否 X1=p+q X2=p-
10、q ? ? 0?是 bp? ?2a否 输出p 输出x1,x2 ?q ?2 a输出“方程没 有实数根” 结束 练习练习2.设计一个求任意数的绝对值的算法设计一个求任意数的绝对值的算法,并画出程序框图并画出程序框图. 程序框图程序框图: ?x(当x? 0时)|x|?x(当x100? 是是 输出输出S 结束结束 是是 S=S+i i100? 否否 输出输出S 结束结束 当型循环结当型循环结构构 说明说明:(1)一般地一般地,循环结构中都有一个计数变量和累加变循环结构中都有一个计数变量和累加变量量.计数变量用于记录循环次数计数变量用于记录循环次数 ,同时它的取值还用于判同时它的取值还用于判断循环是否终
11、止断循环是否终止,累加变量用于输出结果累加变量用于输出结果 .累加变量和计累加变量和计数变量一般是同步执行的数变量一般是同步执行的 ,累加一次累加一次,记数一次记数一次. (2)循环结构分为两种循环结构分为两种 -当型和直到型当型和直到型. 当型循环当型循环在每次执行循环体前,条件进行判断在每次执行循环体前,条件进行判断 ,当条件满足时,执行循环体当条件满足时,执行循环体 ,否则终止循环否则终止循环;(当条件满当条件满足时反复执行循环体足时反复执行循环体 ) 直到型循环直到型循环在执行了一次循环体之后在执行了一次循环体之后 ,对条件进对条件进行判断行判断,如果条件不满足,就继续执行循环体如果条
12、件不满足,就继续执行循环体 ,直到条直到条件满足时终止循环件满足时终止循环 .(反复执行循环体反复执行循环体,直到条件满足终直到条件满足终止循环止循环) 程序框图程序框图: 开始开始 i=1 开始开始 i=1 S=0 S=0 S=S+i i=i+1 i=i+1 直到型直到型循环结循环结构构 否否 i100? 是是 输出输出S 结束结束 是是 S=S+i i100? 否否 输出输出S 结束结束 当型循环结当型循环结构构 2探究探究:画出用二分法求方程画出用二分法求方程x -2=0(x0) 的近似根的近似根的程序框图的程序框图. 算法分析算法分析: 第一步第一步:令令f(x)=x2-2. 给定精确
13、度给定精确度 第二步第二步:确定确定a,b. 使得使得f(a) f(b) 0, 则令则令a=m;否则否则,令令b=m. 第五步第五步:判断判断|a-b|0? 是是 b=m a=m |a-b|2)位数是不位数是不是回文数是回文数,用自然语言描述算法步骤用自然语言描述算法步骤. 算法步骤算法步骤: 第一步第一步:输入一个正整数输入一个正整数x和它的位数和它的位数. 第二步第二步:判断判断n是不是偶数是不是偶数,如果是偶数如果是偶数,令令m=n/2;如果是奇数如果是奇数,令令m=(n-1)/2. 第三步第三步:当当i从从1取到取到m值时值时,依次判断依次判断x的第的第i位位与第与第(n+1-i)位上的数字是不是相等位上的数字是不是相等,如果都相如果都相等等,则则x是回文数是回文数;否则否则,x不是回文数不是回文数. 回文数是指从左到右读与从右到左读回文数是指从左到右读与从右到左读都是一样的正整数都是一样的正整数,如如121,676,94249 ,234432 等等. 程序框图程序框图 开始开始 输入正整数输入正整数x和它的位数和它的位数n 否否 n是偶数?是偶数? 是是 m=(n-1)/2 m=n/2 否否 第第i位与第位与第(n+1-i)(i=1,2, ,m)位上的数字相等位上的数字相等? 是是 x是回文数是回文数 x不是回文数不是回文数 结束结束