核按钮(新课标)高考数学一轮复习 第十二章 算法初步、

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

§12.1 算法与程序框图
1.算法的概念及特点
(1)算法的概念
在数学中,算法通常是指按照一定______解决某一类问题的________和________的步骤.
(2)算法的特点之一是具有______性,即算法中的每一步都应该是确定的,并能有效地执行,且得到确定的结果,而不应是模棱两可的;其二是具有______性,即算法步骤明确,前一步是后一步的前提,只有执行完前一步才能进行后一步,并且每一步都准确无误才能解决问题;其三是具有______性,即一个算法应该在有限步操作后停止,而不能是无限的;另外,算法还具有不唯一性和普遍性,即对某一个问题的解决不一定是唯一的,可以有不同的解法,一个好的算法应解决的是一类问题而不是一两个问题.
2.程序框图
(1)程序框图的概念
程序框图又称流程图,是一种用______、______及______来表示算法的图形.
(2)构成程序框图的图形符号、名称及其功能
3.算法的基本逻辑结构
(1)顺序结构
顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按__________的顺序进行的.它是由若干个__________的步骤组成的,它是任何一个算法都离不开的基本结构.顺序结构可用程序框图表示为如图所示的形式.
(2)条件结构
在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向.常见的条件结构可以用程序框图表示为如图所示的两种形式.
(3)循环结构
在一些算法中,经常会出现从某处开始,按照一定的条件反复执行某些步骤的情况,这就是_______反复执行的步骤称为________.
循环结构有如下两种形式:
①如图1,这个循环结构有如下特征:在执行了一次循环体后,对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.因此,这种循环结构称为____________.
②如图2表示的也是常见的循环结构,它有如下特征:在每次执行循环体前,对条件进行判断,当条件满足时,执行循环体,否则终止循环.因此,这种循环结构称为____________.
自查自纠
1.(1)规则明确有限(2)确定有序有穷
2.(1)程序框流程线文字说明
(2)①终端框(起止框) ②输入、输出框
③处理框(执行框) ④判断框⑤流程线
⑥连接点
3.(1)从上到下依次执行
(3)循环结构循环体
①直到型循环结构②当型循环结构
下列各式中的S 值不可以用算法求解的是( )
A .S =1+2+3+4
B .S =12+22+32+…+1002
C .S =1+12+13+…+110000
D .S =1+2+3+4+…
解:由算法的有限性知,D 不正确,而A ,B ,C 都可以通过有限步骤操作,输出确定结果,故选D .
给出下列算法:
第一步,输入正整数n (n >1).
第二步,判断n 是否等于2,若n =2,则输出n ;若n >2,则执行第三步.
第三步,依次从2到n -1检验能不能整除n ,若不能整除n ,则执行第四步;若能整除n ,则执行第一步.
第四步,输出n .
则输出的n 的值是( )
A .奇数
B .偶数
C .质数
D .合数
解:根据算法可知n =2时,输出n 的值为2;若n =3,输出n 的值为3;若n =4,2能整除4,则重新输入n 的值,…,故输出的n 的值为质数.故选C .
(2014·北京)执行如图所示的程序框图,输出的S 值为( )
A .1
B .3
C .7
D .15 解:由程序框图知:S =1+21+22=7.故选C .
(2014·辽宁)执行下面的程序框图,若输入x =9,则输出y =____________.
解:输入x =9,则y =5,|y -x |=4>1,不满足条件;x =5,y =113,|y -x |=43>1,不
满足条件;x =113,y =299,|y -x |=49<1,满足条件,输出y =299.故填299
.
如图所示,程序框图(算法流程图)的输出结果是__________.
解:初始值s =0,n =2.第一次循环得s =12,n =4;第二次循环得s =12+14
,n =6;第三次循环得s =12+14+16=1112,n =8,此时退出循环,输出的s =1112.故填1112
.
类型一 算法的概念
下列语句是算法的个数为( )
①从济南到巴黎:先从济南坐火车到北京,再坐飞机到巴黎;
②统筹法中“烧水泡茶”的故事;
③测量某棵树的高度,判断其是否为大树;
④已知三角形的两边及夹角,利用三角形的面积公式求出该三角形的面积.
A .1
B .2
C .3
D .4
解:①中勾画了从济南到巴黎的行程安排,完成了任务;②中节约时间,烧水泡茶完成了任务;③中对“树的大小”没有明确的标准,无法完成任务,不是有效的算法构造;④是纯数学问题,利用三角形的面积公式求出三角形的面积.故选C .
【点拨】算法过程要做到一步一步地执行,每一步执行的操作必须确切,不能含糊不清,且在有限步后必须得到问题的结果.
下列叙述能称为算法的个数为( )
①植树需要运苗、挖坑、栽苗、浇水这些步骤;
②顺序进行下列运算:1+1=2,2+1=3,3+1=4,…,99+1=100;
③从宜昌乘火车到武汉,从武汉乘飞机到北京;
④3x >x +1;
⑤求所有能被3整除的正数,即3,6,9,12,….
A.2 B.3 C.4 D.5
解:①②③可称为算法,④⑤不是,故选B.
类型二经典算法
“韩信点兵”问题.韩信是汉高祖刘邦手下的大将,为了保守军事机密,他在点兵时采用下述方法:先令士兵从1~3报数,结果最后一个士兵报2;再令士兵从1~5报数,结果最后一个士兵报3;又令士兵从1~7报数,结果最后一个士兵报4.这样,韩信很快就知道了自己部队士兵的总人数.请设计一个算法,求出士兵至少有多少人.解:在本题中,士兵从1~3报数,最后一个士兵报2,说明士兵的总人数是除以3余2,其他两种情况依此类推.
(算法一)步骤如下:
第一步:先确定最小的满足除以7余4的数是4;
第二步:依次加7就得到所有满足除以7余4的数:4,11,18,25,32,39,46,53,60,…;
第三步:在第二步所得的一列数中确定最小的满足除以5余3的正整数:18;
第四步:依次加上35,得18,53,88,…;
第五步:在第四步得到的一列数中,找到最小的满足除以3余2的正整数:53,这就是我们要求的数.
(算法二)步骤如下:
第一步:先确定最小的满足除以3余2的数是2;
第二步:依次加3就得到所有满足除以3余2的数:2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,…;
第三步:在第二步所得的一列数中确定最小的满足除以5余3的正整数:8;
第四步:然后依次加15就得8,23,38,53,…,不难看出,这些数既满足除以3余2,又满足除以5余3;
第五步:在第四步所得的一列数中找到满足除以7余4的最小数是53,这就是我们要求的数.
【点拨】给出一个问题,设计算法时要注意:(1)认真分析问题,研究解决此问题的一般方法;(2)将解决问题的过程分解成若干步骤;(3)用简练的语言将各步骤表示出来;(4)把解题过程条理清楚地表达出来,就得到一个明确的算法.对于同一问题,可以设计不同的算法,其最终的结果是一样的,但解决问题的繁简程度不同,我们要寻找最优算法.
一位商人有9枚银元,其中有一枚略轻的是假银元.请设计一种算法,用天平(不用砝码)将假银元找出来.
解:算法如下:
第一步:把银元分成3组,每组3枚;
第二步:先将两组分别放在天平的两边,如果天平不平衡,那么假银元就在轻的那一组;如果天平左右平衡,则假银元就在未称的第3组内;
第三步:取出含假银元的那一组,从中任取两枚银元放在天平的两边.如果左右不平衡,则轻的那一边就是假银元;如果天平两边平衡,则未称的那一枚就是假银元.
类型三 顺序结构
已知点P (x 0,y 0)和直线l :Ax +By +C =0,求点P (x 0,y 0)到直线l 的距离d ,写出其算法并画出流程图.
解:算法如下:
第一步:输入x 0,y 0及直线方程的系数A ,B ,C .
第二步:计算z 1=Ax 0+By 0+C .
第三步:计算z 2=A 2+B 2.
第四步:计算d =
||z 1z 2.
第五步:输出d .
流程图如图所示.
【点拨】顺序结构是一种最简单、最基本的结构,可严格按照传统的解题思路写出算法步骤,画出程序框图.注意语句与语句之间,框与框之间是按从上到下的顺序进行的.
阅读如图所示的程序框图,若输入的a ,b ,c 的值分别是21,32,75,则输
出的a ,b ,c 分别是( )
A .75,21,32
B .21,32,75
C .32,21,75
D .75,32,21 解:该程序框图的执行过程是:输入21,32,75;x =21;a =75;c =32;b =21;输出75,21,32.故选A .
类型四 条件结构
(2015·深圳调研)执行如图所示的程序框图,如果依次输入函数:f (x )=3x ,
f (x )=sin x ,f (x )=x 3,f (x )=x +1x
,那么输出的函数f (x )为( )
A .f (x )=3x
B .f (x )=sin x
C .f (x )=x 3
D .f (x )=x +1x
解:依题意得,输出的函数应满足:f (-x )=-f (x )(x ∈R ),即函数f (x )是定义在R 上的奇函数,且f (x +m )>f (x ),其中m >0,即函数f (x )是定义在R 上的增函数.对于A ,函数f (x )=3x 不是奇函数;对于B ,函数f (x )=sin x 不是定义在R 上的增函数;对于C ,函
数f (x )=x 3既是奇函数又是定义在R 上的增函数;对于D ,函数f (x )=x +1x
的定义域不是实数集.综上所述,只能输出f (x )=x 3
,故选C .
【点拨】条件结构的运用与数学的分类讨论有关.设计算法时,哪一步要分类讨论,哪一步就需要用条件结构.
(2015·全国卷Ⅱ)如图所示程序框图的算法思路源于我国古代数学名著《九章算术》中的“更相减损术”.执行该程序框图,若输入的a,b分别为14,18,则输出的a =( )
A.0 B.2 C.4 D.14
解:执行该程序,输入a,b的值依次为a=14,b=18;a=14,b=4;a=10,b=4;a=6,b=4;a=2,b=4;a=b=2,此时退出循环,输出的a=2.故选B.
类型五循环结构
(2014·安徽)如图所示,程序框图(算法流程图)的输出结果是( )
A.34 B.55 C.78 D.89
解:运行程序:x=1,y=1,z=2;x=1,y=2,z=3;x=2,y=3,z=5;x=3,y =5,z=8;x=5,y=8,z=13;x=8,y=13,z=21;x=13,y=21,z=34;x=21,y =34,z=55,跳出循环,输出结果是55.故选B.
【点拨】如果算法问题里涉及的运算进行了许多次重复的操作,且先后参与运算的数之间有相同的规律,就可引入变量循环参与运算(我们称之为循环变量),应用循环结构.在循环结构中,要注意根据条件设计合理的计数变量、累加和累乘变量及其个数等,特别要使条件的表述恰当、准确.
(2015·陕西)根据下边的框图,当输入x为2006时,输出的y=( )
A.28 B.10 C.4 D.2
解:初始条件:x=2006.第1次运行:x=2004;第2次运行:x=2002;第3次运行:x=2000;…;第1003次运行:x=0;第1004次运行:x=-2,不满足条件,跳出循环,
所以输出的y=32+1=10,故选B.
1.设计算法时,要根据题目进行选择,以简单、程序短、易于在计算机上执行为原则.
2.画程序框图首先要进行结构选择,套用格式.若求只含有一个关系式的函数的函数
值时,只用顺序结构就能够解决;若是分段函数或执行时需要先判断才能执行后继步骤的,
就必须引入条件结构;如果问题涉及的运算进行了许多重复的步骤,有规律,就可引入变量,
应用循环结构.当然,应用循环结构一定要用到顺序结构与条件结构.
3.循环结构的循环控制
通过累加变量记录循环次数,通过判断框决定循环终止与否.用循环结构来描述算法,
在画出算法程序框图之前,需要确定的三件事是:(1)确定循环变量与初始条件;(2)确定循
环体;(3)确定终止条件.注意直到型循环与当型循环的区别,二者判断框内的条件表述在
解决同一问题时恰好相反.解决循环结构框图问题,当循环次数比较少时,可依次列出;当
循环次数较多时,可先循环几次,找出规律.要特别注意最后输出的是什么,不要出现多一
次或少一次循环的错误.
4.在具体绘制程序框图时,要注意以下几点:
(1)流程线上要标有执行顺序的箭头.
(2)判断框后边的流程线应根据情况标注“是(Y)”或“否(N)”.
(3)框图内的内容包括累加(积)变量初始值,计数变量初始值,累加值,前后两个变量
的差值都要仔细斟酌,不能有丝毫差错.
(4)判断框内条件常用“>”“≥”“<”“≤”“=”等符号,它们的含义是各不相同
的,要根据所选循环结构的类型,正确地进行选择.
1.结合下面的算法:
第一步:输入x .
第二步:判断x 是否小于0,若是,则输出x +2,否则执行第三步.
第三步:输出x -1.
当输入的x 的值为-1,0,1时,输出的结果分别为( )
A .-1,0,1
B .-1,1,0
C .1,-1,0
D .0,-1,1
解:根据x 值与0的关系,选择执行不同的步骤,当x 的值为-1,0,1时,输出的结果分别为1,-1,0,故选C .
2.如图的程序框图输出的结果是( )
A .4
B .3
C .2
D .0
解:该算法首先将1,2,3三个数分别赋给x ,y ,z ;然后先让x 取y 的值,即x 变成2,再让y 取x 的值,即y 的值是2,接着让z 取y 的值,即z 的值为2,从而最后输出z 的值为2.故选C .
3.(2014·湖南)执行如图所示的程序框图,如果输入的t ∈[-2,2],则输出的S 属于( )
A .[-6,-2]
B .[-5,-1]
C .[-4,5]
D .[-3,6]
解:由程序框图可得S =⎩⎪⎨⎪⎧2t 2+1-3,t ∈[-2,0),t -3,t ∈[0,2],
其值域为[-3,6].故选D . 4.(2015·福建)阅读如图所示的程序框图,运行相应的程序,则输出的结果为( )
A .2
B .1
C .0
D .-1
解:执行程序,得S =0,i =2;S =-1,i =3;S =-1,i =4;S =0,i =5;S =0,i =6>5,跳出循环,输出S =0.故选C .
5.(2014·重庆)执行如图所示的程序框图,若输出k 的值为6,则判断框内可填入的条件是( )
A .s >12
B .s >35
C .s >710
D .s >45 解:当输出k 的值为6时,s =1×910×89×78=710
,结合各选项知,C 符合要求.故选C . 6.(2015·全国课标Ⅰ)执行如图所示的程序框图,如果输入的t =0.01,则输出的n =( )
A .5
B .6
C .7
D .8
解法一:执行程序,S =12,m =14,n =1;S =14,m =18,n =2;S =18,m =116
,n =3;S =116,m =132,n =4;S =132,m =164,n =5;S =164,m =1128,n =6;S =1128<t =0.01,m =1256,n =7,循环结束,输出n =7.
解法二:记第n 次循环后S 的值为a n ()n =0,1,2,…,其中a 0=1,则a n =a n -1-⎝ ⎛⎭
⎪⎫12n ,递推可得a n =a 0-⎝ ⎛⎭⎪⎫12+122+…+12n =1-12⎣⎢⎡⎦⎥⎤1-⎝ ⎛⎭⎪⎫12n 1-12
=12n ≤t =0.01. 显然n >6,故n =7.故选C .
7.(2015·安徽)执行如图所示的程序框图(算法流程图),输出的n 为________.
解:各次循环中变量
当a =1.416·时,跳出循环,输出的n 为4.故填4.
8.(2014·湖北)设a 是一个各位数字都不是0且没有重复数字的三位数.将组成a 的3个数字按从小到大排成的三位数记为I (a ),按从大到小排成的三位数记为D (a )(例如a =815,则I (a )=158,D (a )=851).阅读如图所示的程序框图,运行相应的程序,任意输入一个a ,输出的结果b =________.
解法一:当a=123时,b=321-123=198≠123;
当a=198时,b=981-189=792≠198;
当a=792时,b=972-279=693≠792;
当a=693时,b=963-369=594≠693;
当a=594时,b=954-459=495≠594;
当a=495时,b=954-459=495=a,终止循环,输出b=495.
解法二:设I(a)=100x+10y+z,D(a)=100z+10y+x,x<y<z,x,y,z∈N*,则D(a)-I(a)=99(z-x),因此各位数字都不是0且没有重复数字,而且是99的倍数的三位数有:198,297,396,495,594,693,792,891,经检验知只有495满足题意.故填495.
9.某人带着一只狼和一只羊及一捆青菜过河,只有一条船,船仅可载重此人和狼、羊及青菜三者之一,没有人在的时候,狼会吃羊,羊会吃青菜.请设计安全过河的算法.解:第一步,人带羊过河.
第二步,人自己返回.
第三步,人带青菜过河.
第四步,人带羊返回.
第五步,人带狼过河.
第六步,人自己返回.
第七步,人带羊过河.
10.设计一个算法,找出区间[1,1000]内的能被7整除的整数,画出程序框图.
解:第一步,取k=1.
第二步,判断k≤1000是否成立,若不成立,则执行第五步.
第三步,若k除以7的余数为0,则输出k.
第四步,将k的值增加1,返回执行第二步.
第五步,结束.
程序框图如图.
11.设计一个算法计算11×3+13×5+15×7+…+12013×2015
的值,并画出程序框图. 解:算法步骤如下:
第一步,令S =0,k =1.
第二步,若k <2015成立,则执行第三步,否则输出S .
第三步,计算S =S +1k (k +2)
,k =k +2,返回第二步. 程序框图如图所示:
意大利数学家斐波那契,在1202年出版的《算盘全书》一书里提出了这样一
个问题:一对兔子饲养到第二个月进入成年,第三个月生一对小兔,以后每个月生一对小兔,所生小兔能全部存活并且也是第二个月成年,第三个月生一对小兔,以后每月生一对小兔.问这样下去到年底应有多少对兔子?试画出解决此问题的程序框图.
解:根据题意可知,第一个月有1对小兔,第二个月有1对成年兔子,第三个月有两对兔子,从第三个月开始,每个月的兔子对数是前面两个月兔子对数的和,设第N 个月有F 对兔子,第N -1个月有S 对兔子,第N -2个月有Q 对兔子,则有F =S +Q ,一个月后,即第N +1个月时,式中变量S 的新值应变为第N 个月兔子的对数(F 的旧值),变量Q 的新值应变为第N -1个月兔子的对数(S 的旧值),这样,用S +Q 求出变量F 的新值就是N +1个月兔子的对数,依此类推,可以得到一个数序列,数序列的第12项就是年底应有兔子对数,我们可以先确定前两个月的兔子对数均为1,以此为基准,构造一个循环程序,让表示“第x (x ≥3)个月的i 从3逐次增加1,一直变化到12,再循环一次得到的F ”就是所求结果.流程图如图所示.。

相关文档
最新文档