高三数学高考导学练系列教案算法.docx
《高三数学高考导学练系列教案算法.docx》由会员分享,可在线阅读,更多相关《高三数学高考导学练系列教案算法.docx(33页珍藏版)》请在冰豆网上搜索。
高三数学高考导学练系列教案算法
算法初步
考纲导读
算法的含义、程序框图
(一)了解算法的含义,了解算法的思想。
(二)理解程序框图的三种基本逻辑结构:
顺序结构、条件结构和循环结构。
知识网络
高考导航
算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础。
算法初步虽然是新课标增加的内容,但与前面的知识有着密切的联系,并且与实际问题的联系也非常密切。
因此,在高考中算法初步知识将与函数、数列、三角、概率、实际问题等知识点进行整合,是高考试题命制的新“靓”点。
这样试题就遵循了“在知识网络交汇处设计试题”的命制原则,既符合高考命题“能力立意”的宗旨,又突出了数学的学科特点。
这样做,可以从学科的整体高度和思维价值的高度考虑问题,可以揭示数学各知识之间得到的内在联系,可以使考查达到必要的深度。
考查形式与特点是:
(1)选择题、填空题主要考查算法的含义、流程图、基本算法语句等内容,一般在每份试卷中有1~2题,多为中档题出现。
(2)在解答题中可通过让学生读程序框图去解决其它问题,此类试题往往是与数列题结合在一起,具有一定的综合性,可以考查学生的识图能力及对数列知识的掌握情况.
第1课时算法的含义
基础过关
1.算法的概念:
对一类问题的机械的、统一的求解方法称为算法。
2.算法的特性:
(1)有限性
(2)确定性
典型例题
例1.给出求1+2+3+4+5的一个算法。
解:
算法1
第一步:
计算1+2,得到3
第二步:
将第一步中的运算结果3与3相加,得到6
第三步:
将第二步中的运算结果6与4相加,得到10
第四步:
将第三步中的运算结果10与5相加,得到15
算法2
第一步:
取n=5
第二步:
计算
第三步:
输出运算结果
变式训练1.写出求
的一个算法.
解:
第一步:
使
,;
第二步:
使
;
第三步:
使
;
第四步:
使
;
第五步:
使
;
第六步:
如果
,则返回第三步,否则输出
.
例2.给出一个判断点P
是否在直线y=x-1上的一个算法。
解:
第一步:
将点P
的坐标带入直线y=x-1的解析式
第二步:
若等式成立,则输出点P
在直线y=x-1上
若等式不成立,则输出点P
不在直线y=x-1上
变式训练2.任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做出判断.
分析:
(1)质数是只能被1和自身整除的大于1的整数.
(2)要判断一个大于1的整数n是否为质数,只要根据质数的定义,用比这个整数小的数去除n,如果它只能被1和本身整除,而不能被其它整数整除,则这个数便是质数.
解:
算法:
第一步:
判断n是否等于2.若n=2,则n是质数;若n>2,则执行第二步.
第二步:
依次从2~(n-1)检验是不是n的因数,即整除n的数.若有这样的数,则n不是质数;若没有这样的数,则n是质数.
例3.解二元一次方程组:
分析:
解二元一次方程组的主要思想是消元的思想,有代入消元和加减消元两种消元的方法,下面用加减消元法写出它的求解过程.
解:
第一步:
②-①×2,得:
5y=3;③
第二步:
解③得
;第三步:
将
代入①,得
.
变式训练3.设计一个算法,使得从10个确定且互不相等的数中挑选出最大的一个数.
解:
算法1
第一步:
假定这10个数中第一个是“最大值”;
第二步:
将下一个数与“最大值”比较,如果它大于此“最大值”,那么就用这个数取代“最大值”,否则就取“最大值”;
第三步:
再重复第二步。
第四步:
在这十个数中一直取到没有可以取的数为止,此时的“最大值”就是十个数中的最大值。
算法2
第一步:
把10个数分成5组,每组两个数,同组的两个数比较大小,取其中的较大值;
第二步:
将所得的5个较大值按2,2,1分组,有两个数的组组内比较大小,一个数的组不变;
第三步:
从剩下的3个数中任意取两个数比较大小,取其中较大值,并将此较大值与另一个数比较,此时的较大值就是十个数中的最大值。
例4.用二分法设计一个求方程
的近似根的算法.
分析:
该算法实质是求
的近似值的一个最基本的方法.
解:
设所求近似根与精确解的差的绝对值不超过0.005,算法:
第一步:
令
.因为
,所以设x1=1,x2=2.
第二步:
令
,判断f(m)是否为0.若是,则m为所求;若否,则继续判断
大于0还是小于0.
第三步:
若
,则x1=m;否则,令x2=m.
第四步:
判断
是否成立?
若是,则x1、x2之间的任意值均为满足条件的近似根;若否,则返回第二步.
变式训练4.一个人带三只狼和三只羚羊过河,只有一条船,同船可以容纳一个人和两只动物.没有人在的时候,如果狼的数量不少于羚羊的数量,狼就会吃掉羚羊.请设计过河的算法.
解:
算法或步骤如下:
S1人带两只狼过河;
S2人自己返回;
S3人带一只羚羊过河;
S4人带两只狼返回;
S5人带两只羚羊过河;
S6人自己返回;
S7人带两只狼过河;
S8人自己返回;
S9人带一只狼过河.
第2课时程序框图
基础过关
(1)程序构图的概念:
程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。
一个程序框图包括以下几部分:
表示相应操作的程序框;带箭头的流程线;程序框外必要文字说明。
(2)构成程序框的图形符号及其作用
程序框
名称
功能
起止框
表示一个算法的起始和结束,是任何流程图不可少的。
输入、输出框
表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置。
处理框
赋值、计算,算法中处理数据需要的算式、公式等分别写在不同的用以处理数据的处理框内。
判断框
判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”。
学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下:
1、使用标准的图形符号。
2、框图一般按从上到下、从左到右的方向画。
3、除判断框外,大多数流程图符号只有一个进入点和一个退出点。
判断框具有超过一个退出点的唯一符号。
4、判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。
5、在图形符号内描述的语言要非常简练清楚。
(3)、算法的三种基本逻辑结构:
顺序结构、条件结构、循环结构
顺序结构:
顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
顺序结构在程序框图中的体现就是用流程线将程序框自上而
下地连接起来,按顺序执行算法步骤。
如在示意图中,A框和B
框是依次执行的,只有在执行完A框指定的操作后,才能接着执
行B框所指定的操作.
典型例题
例1.如果学生的成绩大于或等于60分,则输出“及格”,否则输出“不及格”.用程序框图表示这一算法过程.
解:
变式训练1:
画出解不等式ax+b>0(b≠0)的程序框图.
解:
变式训练1
例2.设计一个计算1+2+3+…+100的值的
算法,并画出相应的程序框图.(要求用循环结构)
解:
第一步:
设i的值为1;
第二步:
设sum的值为0;
第三步:
如果i≤100执行第四步,
否则转去执行第七步;
第四步:
计算sum+i并将结果代替sum;
第五步:
计算i+1并将结果代替i;
第六步:
转去执行第三步;
第七步:
输出sum的值并结束算法.
变式训练2:
阅读右面的流程图,
输出max的含义是___________________________。
解:
求a,b,c中的最大值
例3.某快递公司规定甲、乙两地之间物品的托运费
用根据下列方法计算:
f=
其中
(单位:
元)为托运费,ω为托运物品的重量
(单位:
千克),试写出一个计算费用
算法,并画出相应的程序框图.
解:
算法:
第一步:
输入物品重量ω;
第二步:
如果ω≤50,那么f=0.53ω,否则,f=50×0.53+(ω-50)×0.85;
第三步:
输出物品重量ω和托运费f.
相应的程序框图.
变式训练3:
程序框图如下图所示,则该程序框图表示的算法的功能是
解:
:
求使
成立的最小正整数n的值加2。
例4.下面是计算应纳税所得额的算法过程,
其算法如下:
S1输入工资x(x<=5000);
S2如果x<=800,那么y=0;
如果800否则y=25+0.1(x-1300)
S3输出税款y,结束。
请写出该算法的流程图.
解:
流程图如上右。
变式训练4:
下面是求解一元二次方程
的流程图,根据题意填写:
(1);
(2);(3)。
解:
(1)
(2)
(3)输出
第3课时基本算法语句
基础过关
输入语句
(1)输入语句的一般格式
(2)输入语句的作用是实现算法的输入信息功能;(3)“提示内容”提示用户输入什么样的信息,变量是指程序在运行时其值是可以变化的量;(4)输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式;(5)提示内容与变量之间用分号“;”隔开,若输入多个变量,变量与变量之间用逗号“,”隔开。
输出语句
(1)输出语句的一般格式
(2)输出语句的作用是实现算法的输出结果功能;(3)“提示内容”提示用户输入什么样的信息,表达式是指程序要输出的数据;(4)输出语句可以输出常量、变量或表达式的值以及字符。
赋值语句
(1)赋值语句的一般格式
(2)赋值语句的作用是将表达式所代表的值赋给变量;(3)赋值语句中的“=”称作赋值号,与数学中的等号的意义是不同的。
赋值号的左右两边不能对换,它将赋值号右边的表达式的值赋给赋值号左边的变量;(4)赋值语句左边只能是变量名字,而不是表达式,右边表达式可以是一个数据、常量或算式;(5)对于一个变量可以多次赋值。
条件语句:
1、条件语句的一般格式有两种:
(1)IF—THEN—ELSE语句;
(2)IF—THEN语句。
2、IF—THEN—ELSE语句
IF—THEN—ELSE语句的一般格式为图1,对应的程序框图为图2。
IF条件THEN
语句1
ELSE
语句2
ENDIF
图1图2
WHILE语句
(1)WHILE语句的一般格式是对应的程序框图是
WHILE条件
循环体
WEND
(2)当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。
这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。
因此,当型循环有时也称为“前测试型”循环。
典型例题
例1.用描点法作函数
的图象时,需要求出自变量和函数的一组对应值,编写程序,分别计算当x=-5,-4,-3,-2,-1,0,1,2,3,4,5时函数值。
解:
程序:
INPUT“x=”;x
PRINTx
PRINTy
END
变式训练1:
编写程序,计算一个学生数学,语文,英语三门课的平均成绩。
解:
程序:
INPUT“Maths=”;a
INPUT“Chjinese=”;b
INPUT“English=”;c
PRINT“Theaverage=”;(a+b+c)/3
END
例2.儿童乘坐火车时,若身高不超过1.1m,则不需买票;若身高超过1.1m但不超过1.4m,则需买半票;若身高超过1.4m,则需买全票.试设计一个买票的算法,并画出相应的程序框图及程序。
解:
是否买票,买何种票,都是以身高作为条件进行判断的,此处形成条件结构嵌套.程序框图是:
程序是:
INPUT“请输入身高h(米):
”;h
IFh<=1.1THEN
PRINT“免票”
ELSE
IFh<=1.4THEN
PRINT“买半票”
ELSE
PRINT“买全票”
ENDIF
ENDIF
END
变式训练2:
若输入8时,则下图程序执行后输出的结果是
解:
0.7
i=1
WHILEi<8
i=i+2
s=2※I+3
WEND
PRINTs
END
变式训练3
a=0
j=1
WHILEj<=5
a=(a+j)MOD5
j=j+1
WEND
PRINTa
END
例3
INPUTt
IFt<=4THEN
c=0.2
ELES
c=0.2+0.1(t-3)
ENDIF
PRINTc
END
变式训练2
例3.上图程序运行后输出的结果为()
A.50B.5C.25D.0
解:
D.
变式训练3:
上图程序运行后的输出结果为()
A.17B.19C.21D.23
解:
C.
例4.意大利数学家菲波拉契,在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,以此为基准,构造一个循环程序,让表示“第×个月的I从3逐次增加1,一直变化到12,最后一次循环得到的F”就是
S=1
Q=1
I=3
WHILEI<=12
F=S+Q
Q=S
S=F
I=I+1
WEND
PRINTF
END
变式训练4:
写出已知函数
输入
的值,求y的值程序.
解:
INPUT“请输入x的值:
”;x
IFx>0THEN
y=1
ELSE
IFx=0THEN
y=0
ELSE
y=-1
ENDIF
ENDIF
PRINT“y的值为:
”;y
END
算法语言单元测验题
一、选择题
1.我们已学过的算法有求解一元二次方程的求根公式,加减消元法求二元一次方程组解,二分法求函数零点等.对算法的描述有①对一类问题都有效;②对个别问题有效;③计算可以一步步地进行,每一步都有惟一的结果;④是一种通法,只要按部就班地做,总能得到结果.以上正确描述算法的有()
A.1个B.2个C.3个D.4个
X=3
Y=4
X=X+Y
Y=X+Y
PRINTX,Y
2.右面程序的输出结果为()程序:
A.3,4B.7,7
C.7,8D.7,11
3.算法
S1m=a
S2若bS3若cS4若dS5输出m,则输出m表示()
A.a,b,c,d中最大值
B.a,b,c,d中最小值
C.将a,b,c,d由小到大排序
D.将a,b,c,d由大到小排序
4.算法:
S1输入n
S2判断n是否是2,若n=2,则n满足条件,若n>2,则执行S3
s3依次从2到n一1检验能不能整除n,若不能整除n,则输出n。
满足上述条件的是()
A.质数B.奇数C.偶数D.约数
5.右图输出的是
A.2005B.65C.64D.63
6.给出以下算法:
S1i=3,S=0
S2i=i+2
S3S=S+i
S4S≥2009?
如果S≥2009,执行S5;否则执行S2
S5输出i
S6结束
则算法完成后,输出的i的值等于。
7.将两个数A=9,B=15交换使得A=15,B=9下列语句正确的一组是()
C=B
B=A
A=C
A=C
C=B
B=A
B=A
A=B
A=B
B=A
A.B.C.D.
8.计算机执行下面的程序段后,输出的结果是()
PRINT
,
A.
B.
C.
D.
9.读程序
甲:
INPUTi=1乙:
INPUTI=1000
S=0S=0
WHILEi≤1000DO
S=S+iS=S+i
i=i+lI=i一1
WENDLoopUNTILi<1
PRINTSPRINTS
ENDEND
对甲乙两程序和输出结果判断正确的是()
A.程序不同结果不同B.程序不同,结果相同C.程序相同结果不同D.程序同,结果同
10.阅读右边的程序框图,若输入的n是100,
则输出的变量S和T的值依次是()
A.2500,2500B.2550,2550
C.2500,2550D.2550,2500
二、填空题
11.上图程序框图可用来估计π的值(假设函数CONRND(-1,1)是产生随机数的函数,它能随机产生区间(-1,1)内的任何一个实数)。
如果输入1000,输出的结果为788,则运用此方法估计的π的近似值为(保留四位有效数字)。
12.给出以下算法:
S1i=3,S=0
S2i=i+2
S3S=S+i
S4S≥2009?
如果S≥2009,执行S5;否则执行S2
S5输出i
S6结束
则算法完成后,输出的i的值等于。
13.一个算法的程序框图如下图所示,若该程序输出的结果为
,则判断框中应填入的条件是。
14.下面程序输出的n的值是______________.
三、解答题
15.某市公用电话(市话)的收费标准为:
分钟之内(包括
分钟)收取
元;超过
分钟部分按
元/分钟加收费。
设计一个程序,根据通话时间计算话费
16.写出求m=60和n=33的最大公约数的算法和程序框图.
17.有10个互不相等的数,写出找出其中一个最大数的算法和程序
18.假定在银行中存款10000元,按11.25%的利率,一年后连本带息将变为11125元,若将此款继续存人银行,试问多长时间就会连本带利翻一番?
请用直到型和当型两种语句写出程序.
19..用循环语句描述1+
+
+
+…+
.
20.目前高中毕业会考中,成绩在85~100为“A”,70~84为“B”,60~69为“C”,60分以下为“D”.编制程序,输入学生的考试成绩(百分制,若有小数则四舍五入),输出相应的等级.
算法语言测试题答案
一、选择题
1.C2.D3.B4.A5.D6.解析:
根据算法可知,i的值in构成一个等差数列{in},S的值是数列{in}相应的前n项的和,且i1=5,d=2,所以in=2n+1。
又S≥2009,所以n≥43,故in=89,所以输出的i的值为89。
7.B8.B把
赋给变量
,把
赋给变量
,把
赋给变量
,把
赋给变量
,输出
9.B10.解析:
由程序框图知,S=100+98+96+……+2=2550
T=99+97+95+……+1=2500,选D
点评:
该题主要考查算法流程图、等差数列求和等基础知识,以及算法思想、数据处理能力、语言转换能力。
本题采用直到型循环语句描述算法,解题的关键是循环体中两个n=n-1的理解,明确循环一次后n的值就减少了2。
二、填空题
11.解析:
本题转化为用几何概型求概率的问题。
根据程序框图知,如果点在圆x2+y2=1内,m就相加一次;现N输入1000,m起始值为0。
输出结果为788,说明m相加了788次,也就是说有788个点在圆x2+y2=1内。
设圆的面积为S1,正方形的面积为S2,则概率P=
=
∴π=4p=4×
≈3.152
点评:
本题是算法框图与几何概型的整合,融合自然,具有创新性,有力地考查了基础知识和逻辑思维能力,同时又能体会到求无理数近似值的一种算法,可培养学生用数学的意识。
12.解析:
根据算法可知,i的值in构成一个等差数列{in},S的值是数列{in}相应的前n项的和,且i1=5,d=2,所以in=2n+1。
又S≥2009,所以n≥43,故in=89,所以输出的i的值为89。
13.解析:
由循环体可知,当sum=1时,s=0+
;当sum=2时,s=
+
=
,……,当sum=4时,s=
+
=
,因此,判断框中应填:
“i<5?
”或“sum<4?
”
点评:
本题设计角度比较新颖,具有探索性,同时答案又具开放性。
此题融算法、数列求和于一体,虽属常规题,但由于问法不同,有力考查学生对数列、框图等知识的掌握情况以及分析问题和解决问题的能力
14.3
三、解答题
15.解:
16.【解法一】
S1:
以n除m,得余数r=27
S2:
判断r是否为零,若r=0,则n为解,若r≠0,则重复S3操作(r=27)
S3:
以n作为新的m(33),以r作为新的,l(27),求新的m/n的余数r=6
S4:
判断r是否为零,若r=O,则前一个n即为解,否则要继续S5操作
S5:
以n作为新的m(即m=27),以r作为新的n(即n=6),求新的余数r=3
S6:
判断上一个r是否为零,若r=O,则前一个n即为解,否则要执行S7操作
S7:
以n作为新的m(m=6),r作为新的n(n=3),求新的r=O
S8:
判断r是否为零,这里r=O,算法结束,得,n=3是60与33的最大公约数程序框图略
【解法二】
S1:
输入60,33,将m=60,n=33
S2:
求m/n余数r
S3:
若r=0,则n就是所求最大公约,输出n,若r≠O,执行下一步
S4:
使n作为新的m,使r作为新的n,执行S2
程序框图(当型)
【解法三】
S1:
令m=60,n=33
S2:
重复执行下面序列,直到求得r=0为止
S3:
求m/n的余数r
S4:
令m=n,n=r
S5:
输出m
(直到型)
17.【解】
(一)算法
S1:
输入一个数,放在MAX中
S2:
i=1
S3:
输入第1个数,放入x中
S4:
若x>MAX,则MAX=z
S5:
i=i+1
S6:
若i≤9,返回S3继续执行,否则停.
(二)程序框图
18.【解】
用当型
INPUTm=10000
X=m
y=O
r=11.25/100
Do
m<2*x
y=y+1
x=x+r*x
LoopUNTIL
PRINTy
END
用直到型
INPUT“money=”,10000
x=mOney
r=11.25/100
y=O
WHILEx≥2r
y=y+1
x=x+r*x
WEND
PRINTy
END
19.解:
算法分析:
第一步是选择一个变量S表示和,并赋给初值0,再选取一个循环变量i,并赋值为0;
第