【2014年高考一轮复习热点难点精讲精析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【金榜原创】2014年高考一轮复习热点难点精讲精析:
9.1基本算法语句与程序框图
一、算法与程序框图
※相关链接※
1.算法的特征
(1)概括性:写出的算法必须能解决某一类问题,并且能够重复使用;
(2)逻辑性:算法从它的初始步骤开始,分为若干明确的步骤,前一步是后一步的前提,只有执行完前一步才能进行后一步,而且每一步都是正确无误的,从而组成了一个有着很强逻辑性的序列;
(3)有穷性:算法有一个清晰的起始步,终止步时表示问题得到解答或指出问题没有解答,所有序列必须在有限个步骤内完成,不能无停止地执行下去;
(4)不唯一性:求解某一问题的算法不一定只有唯一的一个,可以有不同的算法,当然这些算法有简繁之分、优劣之别;
(5)普遍性:很多具体的问题,都可以通过设计合理的算法去解决。例如手算法、心算或用算盘、计算器去计算都要经过有限的、事先设计好的步骤加以解决。同样,工作计划、生产流程等都可以认为是算法。
注:算法要求“按部就班地做”,每做一步都有唯一的结果。
2.给出一个问题,设计算法时应注意:
(1)认真分析问题,联系解决此问题的一般数学方法;
(2)综合考虑此类问题中可能涉及的各种情况;
(3)将解决问题的过程划分为若干个步骤;
(4)用简练的语言将各个步骤表示出来。
※例题解析※
〖例〗写出找出1至1 000内7的倍数的一个算法.
解答:算法1:
S1 令A=0;
S2 将A不断增加1,每加一次,就将A除以7,若余数为0,则找
到了一个7的倍数,将其输出;
S3 反复执行第二步,直到A=1 000结束.
算法2:
S1 令k=1;
S2 输出k ·7的值;
S3 将k 的值增加1,若k ·7的值小于1 000,则返回S2,否则结
束.
算法3:
S1 令x=7;
S2 输出x 的值;
S3 将x 的值增加7,若没有超过1 000,则返回S2,否则结束.
(二)算法的顺序结构和条件结构
※相关链接※
1.顺序结构是最简单的算法结构,语句与语句之间、框与框之间是按从上到下顺序进行的。程序框图中一定包含顺序结构。
2.解决分段函数的求值问题时,一般采用条件结构设计算法。利用条件结构解决算法问题时,要引入判断框,要根据题目的要求引入一个或多个判断框。而判断框内的条件不同,对应的下一图框中的内容和操作要相应地进行变化,故要逐个分析判断框内的条件。
3.画程序框图的规则
(1)使用标准的框图符号;
(2)框图一般按从上到下、从左到右的方向画;
(3)除判断框外,大多数程序框图中的程序框只有一个进入点和一个退出点,判断框是具有超过一个退出点的唯一符号;
(4)在图形符号内描述的语言要非常简练清楚。
注:(1)终端框(起止框)是任何程序框图不可少的,表明程序开始和结束。(2)输入框和输出框可用在算法中任何需要输入、输出的位置。
※例题解析※
〖例〗已知函数223(0)2(0)x x y x x ->⎧=⎨+≤⎩,写出求该函数的函数值的算法并画出程序框图。
思路解析:分析算法→写出算法→选择合适的逻辑结构→画出程序框图。
解答:算法如下:
第一步:输入x ;
第二步:如果(0)x >,那么使23y x =-,
否则2
2y x =+;
第三步:输出y 。
程序框图如下:
(三)算法的循环结构
〖例〗设计算法求111112233499100
++++⨯⨯⨯⨯ 的值,并画出程序框图。 思路解析:(1)这是一个累加求和问题,共99项相加;
(2)设计一个计数变量,一个累加变量,用循环结构实现这一算法。
解答:算法如下:
第一步:令S=0,1;i =
第二步:若99i ≤成立,则执行第三步;
否则,输出S ,结束算法; 第三步:1;(1)
S S i i =++ 第四步:1i i =+,返回第二步。
程序框图:
方法一:当型循环程序框图:
方法二:直到型循环程序框图:
注:利用循环结构表示算法,一定要先确定是利用当型循环结构,还是直到型循环结构;第二要选择准确的表示累计的变量;第三要注意在哪一步开始循环。
(四)算法的实际应用
〖例〗意大利数学家菲波拉契,在1202年出版的一书里提出了这样的一个问题:一对兔子饲养到第二个月进入成年,第三个月生一对小兔,以后每个月生一对小兔,所生小兔能全部存活并且也是第二个月成年,第三个月生一对小兔,以后每月生一对小兔.问这样下去到年底应有多少对兔子? 试画出解决此问题的程序框图,并编写相应的程序.
解答: 根据题意可知,第一个月有1对小兔,第二个月有1对成年兔子,第三个月有两对兔子,从第三个月开始,每个月的兔子对数是前面两个月兔子对数的和,设第N 个月有F 对兔子,第1N -个月有S 对兔子,第2N -个月有Q 对兔子,则有F S Q =+,一个月后,即第1N +个月时,式中变量S 的新值应变第N 个月兔子的对数(F 的旧值),变量Q 的新值应变为第1N -个月兔子的对数(S 的旧值),这样,用S Q +求出变量F 的新值就是1N +个月兔子的数,依此类推,可以得到一个数序列,数序列的第12项就是年底应有兔子对数,我们可以先确定前两个月的兔子对数均为1,以此为基准,构造一个循环程序,让表示“第×个月的I 从3逐次增加1,一直变化到12,最后一次循环得到的F 就是所求结果. 流程图和程序如下:
注:(1)实际生活中很多问题都可以利用框图的方法处理,而解决实际问题的方法本身就是对算法的一个体现。解决此类问题时,首先要认真分析,联系解决此类问题的数学方法,综合考虑此类问题中可能涉及的问题,明确选择合适的算法逻辑结构来画出程序框图。
(2)在算法中,遇到不同形式的选择问题,需要考虑利用条件结构,对式子呈现一定规律且计算项较多时,需要考虑利用循环结构,要注意第一次循环和最后一次循环的结果,以免多算或漏算。
二、基本算法语句
(一)输入、输出、赋值语句的应用