精品高中数学必修三第一章11算法与程序边框图.docx
《精品高中数学必修三第一章11算法与程序边框图.docx》由会员分享,可在线阅读,更多相关《精品高中数学必修三第一章11算法与程序边框图.docx(17页珍藏版)》请在冰豆网上搜索。
![精品高中数学必修三第一章11算法与程序边框图.docx](https://file1.bdocx.com/fileroot1/2022-12/14/f695fd72-0b86-4015-bb81-c592edde1dc0/f695fd72-0b86-4015-bb81-c592edde1dc01.gif)
精品高中数学必修三第一章11算法与程序边框图
第一章1.1算法与程序边框图
1.算法的概念
(1)算法概念的理解
①算法是指可以用计算机来解决的某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.
②算法与一般意义上具体问题的解法既有联系,又有区别,它们之间是一般和特殊的关系,也是抽象与具体的关系.算法的获得要借助一般意义上具体问题的求解方法,而任何一个具体问题都可以利用这类问题的一般算法来解决.
③算法一方面具有具体化、程序化、机械化的特点,同时又有高度的抽象性、概括性、精确性,所以算法在解决问题中更具有条理性、逻辑性的特点.
(2)算法的四个特征:
概括性、逻辑性、有穷性、不唯一性
①概括性:
写出的算法必须能解决某一类问题,并且能够重复使用.
②逻辑性:
算法从初始步骤开始,分为若干明确的步骤,前一步是后一步的前提,只有执行完前一步才能进行下一步,而且每一步都是正确无误的,从而组成了一个有着很强逻辑性的步骤序列.
③有穷性:
算法有一个清晰的起始步,终止步是表示问题得到解答或指出问题没有解答,所有序列必须在有限个步骤之内完成,不能无停止地执行下去.
④不唯一性:
求解某一个问题的算法不一定只有唯一的一个,可以有不同的算法,当然这些算法有简繁之分、优劣之别.
(3)常见的算法类型
①数值性计算问题.如:
解方程(或方程组)、解不等式(或不等式组)、利用公式求值、累加或累乘等问题,可通过相应的数学模型借助一般的数学计算方法,分解成清晰的步骤,使之条理化.②非数值性计算问题.如:
判断、排序、变量变换等需先建立过程模型,再通过模型进行算法设计与描述.
注意:
(ⅰ)注意算法与解法的区别:
算法是解决一类问题所需要的程序或步骤的统称;而解法是解决某一个具体问题的过程或步骤,是具体的解题过程.
(ⅱ)设计算法时要尽量选取简捷、快速、高效的解决问题的算法.对一个具体的问题,我们要对解决问题的途径进行透彻的研究,找出最优算法,做到“先思考后处理".
2.程序框图
(1)程序框图又称为流程图,是一种用程序框、流程线及文字说明来准确、直观地表示算法的图形.
(2)用程序框图表示算法,具有直观、形象的特点,能更清楚地展现算法的逻辑结构.
(3)程序框图主要由程序框和流程线组成.基本的程序框有终端框、输入框、输出框、处理框、判断框,其中终端框是任何流程图不可缺少的,而输入、输出可以用在算法中任何需要输入、输出的位置.
(4)画程序框图的规则
①使用标准的框图符号;②框图一般按从上到下、从左到右的方向画;③终端框(起止框)是任何程序框图必不可缺少的,表示程序的开始和结束;④除判断框外,大多数程序框图符号只有一个进入点和一个退出点,判断框是具有超过一个退出点的唯一符号;⑤程序框图符号框内的文字要简洁精炼.
注意:
(ⅰ)每一种程序框图的图形符号都有特定的含义,在画程序框图时不能混用,并且所用图形符号一定要标准规范,起始框只有一条流出线(没有流入线),终止框只有一条流入线(没有流出线),输入、输出框只有一条流入线和一条流出线,判断框有一条流入线和两条流出线.(ⅱ)如果一个程序框图由于纸面等原因需要分开画,要在断开处画上连接点,并标出连接的号码.(ⅲ)判断框是“是"与“否”两分支的判断,有且仅有两个结果.(ⅳ)一般地,画程序框图时,先用自然语言编写算法,然后再画程序框图.
3.算法的三种基本结构
(1)
顺序结构:
顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的基本结构,其基本结构形式如图所示,其中A、B两框所指定的操作是依次执行的.顺序结构中所表达的逻辑关系是自然串行、上下连贯、线性排列的.
(2)条件结构:
先根据条件作出判断,再决定执行哪一种操作的结构就称为条件结构.条件结构用于进行逻辑判断,并根据判断的结果进行不同的处理.条件结构必含判断框.
条件结构的结构形式如图2所示,此结构中包含一个判断框,算法执行到此判断框给定的条件P时,根据条件P是否成立选择不同的执行框(A框或B框).注意:
无论P是否成立,下一步只能执行A框或B框之一,不能A框和B框同时执行,也不能A、B两框都不执行,但A框和B框中可以有一个是空的,如图3.
(3)循环结构:
根据条件是否成立,以决定是否重复执行某些操作,在算法中要求重复执行同一操作的结构称为循环结构,重复执行的处理步骤称为循环体.根据执行情况及循环结束条件的不同可以分为当型循环(WHILE型)和直到型循环(UNTIL型).
当型循环的特点是“先判断,后执行”,即先判断条件,当条件满足时,反复执行循环体,当条件不满足时退出循环(也就是说直到条件不满足时退出循环).如图4.
直到型循环的特点是先执行一次循环体,再判断条件,当条件不满足时执行循环体,当条件满足时退出循环(即直到条件满足时退出循环),即“先执行,后判断”.如图5。
当型循环可能一次也不执行循环体,而直到型循环至少要执行一次循环体.当型循环与直到型循环可以相互转化,条件互补.
循环结构中常用的变量有计数变量、累加变量及累乘变量.计数变量用来记录某个事件发生的次数(即执行循环体的次数),累加变量用来计算数据之和,累乘变量用来计算数据之积.对于这些变量,开始一般要先赋初值,一般地,计数变量初值可设为0或1,累加变量初值设为0,累乘变量初值设为1.
注意:
(ⅰ)正确理解顺序结构的特点及适用条件是作出顺序结构图的关键.(ⅱ)画条件结构的程序框图要用到判断框,判断框有两个出口,根据不同的条件输出不同的信息,这些不同的信息必须全部写出.(ⅲ)只有有规律的,能重复进行的算法过程才能用循环结构.
题型一 算法设计
写出能找出a、b、c三个数中最小值的一个算法.
解 第一步:
输入a、b、c.并且假定min=a;
第二步:
若b〈min成立,则用b的值替换min;否则直接执行下一步;
第三步:
若c第四步:
输出min的值,结束.
点评 本题的思路是:
将min定义为最小值,并把a的值赋给min,然后依次与b、c比较大小,遇到小的就替换min的值,最后输出min的值,这种方法可以推广到从多个不同的数中找出最大或最小的一个.
题型二 条件结构的程序框图
已知函数y=
写出求该函数值的算法及程序框图.
解 算法如下:
第一步:
输入x;
第二步:
如果x〉0,那么使y=-1,如果x=0,那么使y=0,如果x〈0,那么使y=1;
第三步:
输出函数值y。
程序框图如图所示.
点评 该函数是分段函数,当x取不同范围内的值时,函数的表达式不同,因此当给出一个自变量x的值时,也必须先判断x的范围,然后确定利用哪一段的表达式求函数值,因为函数分了三段,所以判断框需要两个,即进行两次判断.求分段函数的函数值的程序框图,如果是分两段的函数只需引入一个判断框,如果是分三段的函数,至少需要引入两个判断框,分四段的函数要引入三个判断框,以此类推,至于判断框内的内容是没有顺序的,比如:
本题中的两个判断框内的内容可以交换,但对应的下一图框中的内容或操作也必须相应地进行变化,比如本题的程序框图也可以画成如图1所示或如图2所示.
图1
图2
题型三 循环结构的程序框图
看下面的问题:
1+2+3+…+( )>10000,这个问题的答案不唯一,我们只要确定出满足条件的最小正整数n0,括号内填写的数只要大于或等于n0即可.试写出满足条件的最小正整数n0的算法并画出相应的程序框图.
解 算法如下:
第一步:
p=0;
第二步:
i=0;
第三步:
i=i+1;
第四步:
p=p+i;
第五步:
如果p>10000,则输出i,算法结束.否则,执行第六步;
第六步:
回到第三步,重新执行第三步、第四步和第五步.
该算法的程序框图如图所示.
点评 本题属于累加问题,代表了一类相邻两数的差为常数的求和问题的解法,需引入计数变量和累加变量,应用循环结构解决问题.在设计算法时前后两个加数相差1,则i=i+1,若相差2,则i=i+2,要灵活改变算法中的相应部分.另外需注意判断框内的条件的正确写出,直到型和当型循环条件不同,本题解法用的是直到型循环,用当型循环结构时判断框内条件应为p≤10000.如图所示。
特别提醒 两种结构中,若交换p=p+i与i=i+1的顺序,输出结果应为i-1。
题型四 程序框图在生活中的应用
以下是某次考试中某班15名同学的数学成绩:
72,91,58,63,84,88,90,55,61,73,64,77,82,94,60.要求将80分以上的同学的平均分求出来.画出程序框图.
解 用条件分支结构来判断成绩是否高于80分,用循环结构控制输入的次数,同时引进两个累加变量,分别计算高于80分的成绩的总和和人数.
程序框图如图所示.
点评 对于此类要求把所给多个数据逐一检验是否满足条件的问题,可采用条件分支结构和循环结构相结合的算法.
【例1】 如图所示是某一算法的程序框图,根据该框图指出这一算法的功能.
错解 求S=
+
+
+…+
的值.
错解辨析 本题忽略了计数变量与循环次数,没有明确循环体在循环结构中的作用,以及循环终止条件决定是否继续执行循环体.
正解 在该程序框图中,S与n为两个累加变量,k为计数变量,所以该算法的功能是求
+
+
+…+
的值.
【例2】 试设计一个求1×2×3×4×…×n的值的程序框图.
错解 程序框图如图所示.
错解辨析 本题程序框图看似当型循环结构,我们应当注意的是,当型循环结构是当条件满足时执行循环体,而本题显然是误解了当型循环结构条件.
正解 程序框图如图所示.
点评 这是一个累乘问题,重复进行了(n-1)次乘法,可以用循环结构描述,需引入累乘变量t和计数变量i,这里t与i每一次循环,它们的值都在改变.
1.(海南、宁夏高考)如果执行下面的程序框图,那么输出的S为( )
A.2450B.2500C.2550D.2652
答案 C
解析 当k=1,S=0+2×1;
当k=2,S=0+2×1+2×2;
当k=3,S=0+2×1+2×2+2×3;
…
当k=50,S=0+2×1+2×2+2×3+…+2×50=2550.
2.(济宁模拟)在如图的程序框图中,输出结果是( )
A.5B.6
C.13D.10
答案 D
解析 a=5时,S=1+5=6;
a=4时,S=6+4=10;
a=3时,终止循环,输出S=10.
3.(广东高考)阅读下图的程序框图.若输入m=4,n=6,则输出a=________,i=________.
答案 12 3
解析 输入m=4,n=6,则i=1时,a=m×i=4,n不能整除4;
i=2时,a=m×i=8,n不能整除8;
i=3时,a=m×i=12,6能整除12。
∴a=12,i=3.
一、选择题
1.一个完整的程序框图至少包含( )
A.终端框和输入、输出框
B.终端框和处理框
C.终端框和判断框
D.终端框、处理框和输入、输出框
答案 A
解析 一个完整的程序框图至少需包括终端框和输入、输出框.
2.下列关于条件结构的说法中正确的是( )
A.条件结构的程序框图有一个入口和两个出口
B.无论条件结构中的条件是否满足,都只能执行两条路径之一
C.条件结构中的两条路径可以同时执行
D.对于一个算法来说,判断框中的条件是惟一的
答案 B
解析 由条件结构可知:
根据所给条件是否成立,只能执行两条途径之一.
3.下列问题的算法适宜用条件结构表示的是( )
A.求点P(-1,3)到直线l:
3x-2y+1=0的距离
B.由直角三角形的两条直角边求斜边
C.解不等式ax+b>0(a≠0)
D.计算100个数的平均数
答案 C
解析 条件结构是处理逻辑判断并根据判断进行不同处理的结构.只有C中含有判断a的符号,其余选项都不含逻辑判断.
4.下列程序框图表示的算法是( )
A.输出c,b,a B.输出最大值
C.输出最小值D.比较a,b,c的大小
答案 B
解析 根据流程图可知,此图应表示求三个数中的最大数.
5.用二分法求方程的近似根,精确度为δ,用直到型循环结构的终止条件是( )
A.|x1-x2|>δB.|x1-x2|〈δ
C.x1〈δ答案 B
解析 直到型循环结构是先执行、再判断、再循环,是当条件满足时循环停止,因此用二分法求方程近似根时,用直到型循环结构的终止条件为|x1-x2|<δ.
二、填空题
6.下边的程序框图(如下图所示),能判断任意输入的整数x是奇数或是偶数.其中判断框内的条件是________.
答案 m=0?
解析 根据程序框图中的处理框和输出的结果,寻找判断框内的条件.由于当判断框是正确时输出的是“x是偶数”,而判断框前面的处理框是x除以2的余数,因此判断框应填“m
=0?
”.
7.下图是计算1+
+
+…+
的程序框图,判断框应填的内容是________,处理框应填的内容是________.
答案 i≤99?
i=i+2
解析 由题意知,该算法从i=1开始到99结束,循环变量依次加2.
8.完成下面求1+2+3+…+10的值的算法:
第一步,S=1。
第二步,i=2.
第三步,S=S+i.
第四步,i=i+1.
第五步,
________________________________________________________________________。
第六步,输出S.
答案 如果i=11,执行第六步;否则执行第三步
解析 本题是用自然语言来描述的算法,实际上第五步是一个判断条件,根据题意,是循环是否终止的条件,因此应该为如果i=11,执行第六步;否则执行第三步.
三、解答题
9.画出求
+
+
+…+
的值的程序框图.
解 这是一个累加求和问题,共99项相加,可设计一个计数变量,一个累加变量,用循环结构实现这一算法.程序框图如下图所示:
10.写出解方程ax+b=0(a、b为常数)的算法,并画出程序框图.
解 算法如下:
第一步,判断a是否等于零,若a≠0,执行第二步,若a=0,执行第三步;
第二步,计算-
,输出“方程的解为-
”;
第三步,判断b是否等于零,若b=0,输出“有无数个解”的信息,
若b≠0,输出“方程无解”的信息.
程序框图如图所示:
探究驿站
11.画出求
(共6个2)的值的程序框图.
分析 本题看上去非常烦琐,尤其是对于2的位置处理,容易让人产生错觉.本题只要把含有2的式子分离开来,用A代替
,即令A=
则不难分析出分母可化为
的形式,且此结构重复出现.
解 方法一 当型循环结构程序框图如图所示.
方法二 直到型循环结构程序框图如图所示.
12.给出以下10个数:
5,9,80,43,95,73,28,17,60,36,要求把大于40的数找出来并输出.试画出该问题的程序框图.
解 程序框图如下图:
趣味一题
13.相传,古印度的舍罕王打算重赏国际象棋的发明者--宰相西萨·班·达依尔.于是,这位宰相跪在国王面前说:
“陛下,请您在这张棋盘的第一个小格内,赏给我一粒麦子;在第二个小格内给两粒,第三格内给四粒,照这样下去,每一小格都比前一小格加一倍.陛下啊,把这样摆满棋盘上所有64格的麦粒,都赏给您的仆人罢!
"国王慷慨地答应了宰相的要求,他下令将一袋麦子拿到宝座前.计数麦粒的工作开始了.第一格内放一粒,第二格两粒,第三格四粒……还没到第二十格,袋子已经空了.一袋又一袋的麦子被扛到国王面前来,但是,麦粒数一格接一格地增长得那么迅速,很快就可以看出,即使拿来全印度的小麦,国王也无法兑现他对宰相许下的诺言!
请你画出一个程序框图来求需要的麦粒数.
分析 由题意,我们可以看出第一格内放一粒,第二格两粒,第三格四粒,就是往后每一格是前一格的2倍,这样一共需要的麦粒数就是1+2+22+…+262+263.从而可以得出这是一个累加求和问题,可以利用循环结构来设计算法,计数变量i从1到64循环64次,每个求和的数可用一个累乘变量表示.
解 程序框图: