当前位置:首页 >> 数学 >>

[启慧]高中数学人教A版必修三配套课件:1.1.2 程序框图与算法的基本逻辑结构 课堂教学素材1_图文

第一章 算法初步 1.1.2 程序框图与算法的基本 逻辑结构 从上节课我们知道:算法可以用自然语言来 描述.如例 判断“整数n(n>2)是否是质数”的算法 自然语言描述 第一步,给定大于2的整数n. 第二步,令i=2. 第三步,用i除n,得到余数r. 第四步,判断“r=0”是否成立.若是,则n不是质 数,结束算法;否则将i的值增加1,仍用i表示. 第五步,判断“i>(n-1)”是否成立.若是,则n 是质数,结束算法;否则返回第三步. 开始 一般用i=i+1 表示. 输入n i=2 求n除以i的余数r 说明:i表示从2~(n-1) 的所有正整数,用以 判断例1步骤2是否 终止,i是一个计数变 量,有了这个变量,算 法才能依次执行.逐 步考察从2~(n-1)的 所有正整数中是否有 n的因数存在. 设n是一个大 于2的整数. i的值增加 1仍用i表示 i=i+1 i>n-1或r=0? 是 否 否 r=0? 是 n不是质数 结束 n是质数 思考?通过上述算法的两种不同表达方式的比较, 你觉得用程序框图来表达算法有哪些特点? 用程序框图表示的算法更加简练,直观,流向清楚. 程序框图又称流程图,是一种用规定的图形、 指向线及文字说明来准确、直观地表示算法的 图形. 通常,程序框图由程序框和流程线组成. 一个或几个程序框的组合表示算法中的一个步骤; 流程线是方向箭头,按照算法进行的顺序将程序 框连接起来. 基本的程序框和它们各自表示的功能如下: 图形符号 名称 终端框 (起止框) 输入、输 出框 处理框 (执行框) 判断框 流程线 连接点 功能 表示一个算法的起始 和结束 表示一个算法输入和 输出的信息 赋值、计算 判断某一条件是否成立,成立 时在出口处标明“是”或 “Y”;不”成立时标明“否” 或“N”. 连接程序框 连接程序框图的两部分 开始 输入n i=2 用程序框图来表示算法,有 三种不同的基本逻辑结构: 顺序结构 求n除以i的余数r i=i+1 i>n-1或r=0? 是 否 否 循环结构 r=0? 是 条件结构 n是质数 n不是质数 结束 程序框图的三种基本的逻辑结构 顺序结构 条件结构 循环结构 (1)顺序结构-----是由若干个依次执行的处理步 骤组成的.这是任何一个算法都离不开的基本结 构. 例1:已知一个三角形的三边边长分别为a,b,c, 利用海伦-秦九韶公式设计一个计算三角形面 积的算法,并画出算法的程序框图. 算法分析: 第一步:输入三角形的三边边长a,b,c, 第二步:由海伦-秦九韶公式求出三角形的面积S. 第三步:输出S的值. 程序框图: 开始 输入a,b,c a?b?c p? 2 S ? p( p ? a)( p ? b)( p ? c) 输出S 结束 (2)条件结构---在一个算法中,经常会遇到一些 条件的判断,算法的流向根据条件是否成立有不 同的流向.条件结构就是处理这种过程的结构. 否 满足条件? 是 否 满足条件? 是 步骤A 步骤B 步骤A 例2.任意给定3个正实数,设计一个算法,判断 以这3个正实数为三条边边长的三角形是否存 在,并画出这个算法的程序框图. 算法步骤如下 第一步:输入 a , b, c 的值 第二步:判断 a ? b ? c ,b ? c ? a ,c ? a ? b 是否同时成立.若是,则存在这样的三角形;否 则,不存在这样的三角形. 程序框图 开始 输入 a , b, c a?b?c c?a ? b b?c ? a 是否同时成立? 否 不存在这样的 三角形 是 存在这样的三 角形 结束 (3)循环结构---在一些算法中,也经常会出现从 某处开始,按照一定条件,反复执行某一步骤的 情况,这就是循环结构. 循环体 否 满足条件? 反复执行的步 骤称为循环体. 是 循环结构 循环结构分为两种------当型和直到型. 直到型循环在执行了一次循环体之后,对控制 循环条件进行判断,当条件不满足时执行循环 体,满足则停止.(反复执行循环体,直到条件满 足) 当型循环在每次执行循环体前对循环条件进行判 断,当条件满足时执行循环体,不满足则停止;(当 条件满足时反复执行循环体) 循环结构分为两种------当型和直到型. 循环体 满足条件? 满足条件? 循环体 是 否 是 Until(直到型)循环 否 While(当型)循环 注意:循环结构不能是永无终止的“死循 环”,一定要在某个条件下终止循环,这就需 要条件结构来作出判断,因此,循环结构中一 定包含条件结构. 例3 某工厂2005年的年生产总值为200万,技术 革新以后每年的年生产总值比上一年增长5%。 设计一个程序框图,输出预计年生产总值超过 300万元的最早年份。 算法分析: 第一步,输入2005年的年生产总值。 第二步,计算下一年的年生产总值。 第三步,判断所得的结果是否大于300. 若是,则输出该年的年份;否则,返回 第二步 由于“第二步”是重复操作的步骤,所以可以用 循环结构来实现。我们按照“确定循环体”“初 始化变量”“设定循环控制条件”的顺序来构造 循环结构。 (1)确定循环体:设a为某年的年生产总值,t 为年生产总值的年增长量,n为年份,则循环体 为 t ? 0.05a, a ? a ? t , n ? n ? 1 (2)初始化变量:若将2005年的年生产总值堪 称计算的起始点,则n的初始值为2005,a的初始 值为200. (3)设定循环控制条件:当“年生产总值超过 300万元”时终止循环,所以可通过判断“a>300” 是否成立来控制循环。 程序框图: 开始 n=2005 a=200 t=0.05a a=a+t n=n+1 a>300? 是 输出n 结束 否 在学习上,我们要求对实际问题能用自然语言 设计一个算法,再根据算法的逻辑结构画出程序框