必修3第一章算法初步复习教案
一.课标要求:
1.通过对解决具体问题过程与步骤的分析(如,二元一次方程组求解等问题),体会算法的思想,了解算法的含义;
2.通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程。在具体问题的解决过程中(如,三元一次方程组求解等问题),理解程序框图的三种基本逻辑结构:顺序、条件分支、循环。
二.要点精讲
1.算法的概念
(1)算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等。
在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。
(2)算法的特征:①确定性:算法的每一步都应当做到准确无误、“不重不漏”。“不重”是指不是可有可无的、甚至无用的步骤,“不漏” 是指缺少哪一步都无法完成任务。②逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣。分工明确,“前一步”是“后一步”的前提, “后一步”是“前一步”的继续。③有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制的持续进行。
(3)算法的描述:自然语言、程序框图、程序语言。
2.程序框图
(1)程序框图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形;
(2)构成程序框的图形符号及其作用
程序框 名称 功能
起止框 表示一个算法的起始和结束,是任何算法程序框图不可缺少的。
输入、输出框 表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置。
处理框 赋值、计算。算法中处理数据需要的算式、公式等,它们分别写在不同的用以处理数据的处理框内。
判断框 判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时在出口处标明则标明“否”或“N”。
流程线 算法进行的前进方向以及先后顺序
循环框 用来表达算法中重复操作以及运算
连结点 连接另一页或另一部分的框图
注释框 帮助编者或阅读者理解框图
(3)程序框图的构成
一个程序框图包括以下几部分:实现不同算法功能的相对应的程序框;带箭头的流程线;程序框内必要的说明文字。
3.几种重要的结构
(1)顺序结构
顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的。它是由若干个依次执行的步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
见示意图和实例:
顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤。如在示意图中,A框和B框是依次执行的,只有在执行完A框指定的操作后,才能接着执行B框所指定的操作。
(2)条件结构
如下面图示中虚线框内是一个条件结构,此结构中含有一个判断框,算法执行到此判断给定的条件P是否成立,选择不同的执行框(A框、B框)。无论P条件是否成立,只能执行A框或B框之一,不可能既执行A框又执行B框,也不可能A框、B框都不执行。A框或B框中可以有一个是空的,即不执行任何操作。
见示意图
(3)循环结构
在一些算法中要求重复执行同一操作的结构称为循环结构。即从算法某处开始,按照一定条件重复执行某一处理过程。重复执行的处理步骤称为循环体。
循环结构有两种形式:当型循环结构和直到型循环结构。
①当型循环结构,如左下图所示,它的功能是当给定的条件P成立时,执行A框,A框执行完毕后,返回来再判断条件P是否成立,如果仍然成立,返回来再执行A框,如此反复执行A框,直到某一次返回来判断条件P不成立时为止,此时不再执行A框,离开循环结构。继续执行下面的框图。
②直到型循环结构,如右下图所示,它的功能是先执行重复执行的A框,然后判断给定的条件P是否成立,如果P仍然不成立,则返回来继续执行A框,再判断条件P是否成立。以次重复操作,直到某一次给定的判断条件P时成立为止,此时不再返回来执行A框,离开循环结构。继续执行下面的框图。
见示意图
四.典例解析
题型1:算法概念
例1.下列说法正确的是( )
A.算法就是某个问题的解题过程;
B.算法执行后可以产生不同的结果;
C.解决某一个具体问题算法不同结果不同;
D.算法执行步骤的次数不可以为很大,否则无法实施。
解析:答案为选项B;选项B,例如:判断一个整数是否为偶数,结果为“是偶数”和“不是偶数”两种;选项A ,算法不能等同于解法;选项C,解决某一个具体问题算法不同结果应该相同,否则算法构造的有问题;选项D,算法可以为很多次,但不可以无限次。
点评:算法一般是机械的,有时需要进行大量的重复计算。只要按部就班去做,总能算出结果。通常把算法过程称为“数学机械化”。数学机械化的最大优点是它可以借助计算机来完成;实际上处理任何问题都需要算法。如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则;而国际象棋有国际象棋的棋谱、走法、胜负的评判准则;再比如申请出国有一系列的先后手续,购买物品也有相关的手续……。
例2.下列语句中是算法的个数为( )
①从济南到巴黎:先从济南坐火车到北京,再坐飞机到巴黎;
②统筹法中“烧水泡茶”的故事;
③测量某棵树的高度,判断其是否是大树;
④已知三角形的一部分边长和角,借助正余弦定理求得剩余的边角,再利用三角形的面积公式求出该三角形的面积。
A.1 B.2 C.3 D.4
解析:正确选项为C,③中我们对“树的大小”没有明确的标准,无法完成任务,不是有效的算法构造。①中,勾画了从济南到巴黎的行程安排,完成了任务;②中,节约时间,烧水泡茶完成了任务;④中,纯数学问题,借助正、余弦定理解三角形,进而求出三角形的面积。
点评:算法过程要做到能一步一步的执行,每一步执行的操作,必须确切,不能含混不清,且在有限步后的必须得到问题的结果。
题型2:经典算法
例3.一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量就会吃羚羊。该人如何将动物转移过河?请设计算法?
解析:任何动物同船不用考虑动物的争斗但需考虑承载的数量,还应考虑到两岸的动物都得保证狼的数量要小于羚羊的数量,故在算法的构造过程中尽可能保证船里面有狼,这样才能使得两岸的羚羊数量占到优势,具体算法如下:
算法步骤:
第一步:人带两只狼过河,并自己返回;
第二步:人带一只狼过河,自己返回;
第三步:人带两只羚羊过河,并带两只狼返回;
第四步:人带一只羊过河,自己返回;
第五步:人带两只狼过河。
点评:算法是解决某一类问题的精确描述,有些问题使用形式化、程序化的刻画是最恰当的。这就要求我们在写算法时应精练、简练、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完整性。本题型解决问题的算法中某些步骤重复进行多次才能解决,在现实生活中,很多较复杂的问题经常遇到这样的问题,设计算法的时候,如果能够合适地利用某些步骤的重复,不但可以使得问题变得简单,而且可以提高工作效率。
例4.这是中国古代的一个著名算法案例:一群小兔一群鸡,两群合到一群里,要数腿48,要数脑袋17,多少小兔多少鸡?
解析:求解鸡兔的问题简单直观,却包含着深刻的算法思想。应用解二元一次方程组的方法来求解鸡兔同笼问题。
第一步:设有小鸡x只,小兔y只,则有
第二步:将方程组中的第一个方程两变乘-2加到第二个方程中去,得到,得到y=7;
第三步:将y=7代入(1)得x=10。
点评:解决这些问题的基本思想并不复杂,很清晰,但叙述起来很烦琐,有的步骤非常多,有的计算量很大,有时候完全依靠人力完成这些工作很困难。但是这些恰恰是计算机的长处,它能不厌其烦的枯燥的、重复的、繁琐的工作。但算法也有优劣,我们要追求高效。
题型3:顺序结构
例5.写出通过尺轨作图确定线段AB一个5等分点的算法。
解析:我们借助于平行线定理,把位置的比例关系变成已知的比例关系,只要按照规则一步一步去做就能完成任务。
算法分析:
第一步:从已知线段的左端点A出发,任意作一条与AB不平行的射线AP;
第二步:在射线上任取一个不同于端点A的点C,得到线段AC;
第三步:在射线上延AC的方向截取线段CE=AC;
第四步:在射线上延AC的方向截取线段EF=AC;
第五步:在射线上延AC的方向截取线段FG=AC;
第六步:在射线上延AC的方向截取线段GD=AC,那么线段AD=5AB;
第七步:连接DB;
第八步:过C作BD的平行线,交线段AB于M,这样点M就是线段AB的一个5等分点。
程序框图:
点评:这个算法步骤具有一般性,对于任意自然数n,都可以按照这个算法的思想,设计出确定线段的n等分点的步骤,解决问题。
例7.设计算法判断一元二次方程是否有实数根,并画出相应的程序框图。
解析:算法步骤如下:
第一步:输入一元二次方程的系数:a,b,c;
第二步:计算△的值;
第三步:判断△≥0是否成立。若△≥0成立,输出“方程有实根”;否则输出“方程无实根”。结束算法。
相应的程序框图如下:
点评:根据一元二次方程的意义,需要计算判别式△的值。再分成两种情况处理:(1)当△≥0时,一元二次方程有实数根;(2)当△<0时,一元二次方程无实数根。该问题实际上是一个分类讨论问题,根据一元二次方程系数的不同情况,最后结果就不同。因而当给出一个一元二次方程时,必须先确定判别式的值,然后再用判别式的值的取值情况确定方程是否有解。该例仅用顺序结构是办不到的,要对判别式的值进行判断,需要用到条件结构。
点评:对于开放探究问题,我们可以建立数学模型(上面的题目要与等比数列的定义、性质和公式联系起来)和过程模型来分析好算法,通过设计算法以及语言的描述选择一些成熟的办法进行处理。像上面应用到了等比数列的通项公式和前n项和公式。
【随堂练习】
一、选择题(本大题共16小题,每小题3分,共48分,在每小题给出的四个选顶中,只有一个符合题目要求的)
1.算法的有穷性是指( )
A.算法必须包含输出
B.算法中每个操作步骤都是可执行的
C. 算法的步骤必须有限
D.以上说法均不正确
2.算法共有三种逻辑结构,即顺序结构、条件结构、循环结构,下列说法正确的是( )
A一个算法只能含有一种逻辑结构
B. 一个算法最多可以包含两种逻辑结构
C.一个算法必须含有上述三种逻辑结构
D.一个算法可以含有上述三种逻辑结构的任意组合
3.下列给出的赋值语句中正确的是( )
A.3=A B. M=-M C. B=A=2 D.
4.以下给出的是计算的值的一个程序框图(如图所示),其中判断框内应填入的条件是( )
是
否
A、 i>10 B. i<10 C. i<20 D. I>20
5.840和1764的最大公约数是( )
A.84 B. 12 C. 168 D. 252
6.下列程序执行后输出的结果是( )
n=5s=0WHILE s<15 s=s+n n=n-1WENDPRINT nEND
A. –1 B. 0 C. 1 D. 2
7.下列程序运行的结果是( )
PRINT ,,END
A. 1, 2 ,3 B. 2, 3, 1 C. 2, 3, 2 D. 3, 2, 1
8.给出以下一个算法的程序框图(如图所示):
是
否
是
否
该程序框图的功能是( )
A.求出a, b, c三数中的最大数 B. 求出a, b, c三数中的最小数
C.将a, b, c 按从小到大排列 D. 将a, b, c 按从大到小排列
9.下面的程序框图(如图所示)能判断任意输入的数的奇偶性:
是 否
其中判断框内的条件是( )
A. B. C. D.
10.以下程序运行后的输出结果为( )
i=1WHILE i<8 i = i +2 s = 2 * i +3 i = i –1WENDPRINT sEND
A、17 B. 19 C. 21 D.23
11.用秦九韶算法计算多项式 当时的值时,需要做乘法和加法的次数分别是( )
A.6,6 B. 5, 6 C. 5, 5 D. 6, 5
12.给出以下四个数:6,-3,0,15,用冒泡排序法将它们按从大到小的顺序排列需要经过几趟( )
A.1 B. 2 C. 3 D. 4
二、填空题(本大题共4小题,每小题4分,共16分)
13.三个数72,120,168的最大公约数是_______。
14.若输入8,则下列程序执行后输出的结果是________。
INPUT tIF t <= 4 THEN c = 0.2ELSE c = 0.2 + 0.1 ( t-3 )END IFPRINT cEND
15.将二进制数化为十进制数,结果为__________
16.用秦九韶算法计算多项式 当时的值为 _________。
三、解答题
17.已知一个正三角形的周长为,求这个正三角形的面积。设计一个算法,解决这个问题。
18.试分别用辗转相除法和更相减损术求840与1764、440与556的最大公约数。
19.设计算法求的值。要求画出程序框图,写出用基本语句编写的程序。
第一章算法初步检测题答案:
选择题
1. C 2. D 3. B 4. A 5. A 6. B 7. C 8. B 9. D 10. C 11. A 12. C
二、填空题:13.24 14. 0.7 15. 45, 16. 0
三.解答题
17.算法步骤如下:
第一步:输入的值; 第二步:计算的值;
第三步:计算的值;第四步:输出的值。
18.(1)用辗转相除法求840与1764的最大公约数。
1764=8402+84,840=8410+0,
所以840与1764的最大公约数就是84。
(2)用更相减损术求440与556的最大公约数。
556-440=116,440-116=324,324-116=208,208-116=92,116-92=24,92-24=68,
68-24=44,44-24=20,24-20=4,20-4=16,16-4=12,12-4=8,8-4=4。
440与556的最大公约数是4。
19.这是一个累加求和问题,共99项相加,可设计一个计数变量,一个累加变量,用循环结构实现这一算法。
程序框图如图所示:
是
否
程序如下:
DOLOOP UNTIL PRINT END
高一数学必修三《算法初步》单元测试
一、选择题(本大题共14小题,每小题5分,共70分)
1. 下列关于算法的说法中正确的个数有( )
①求解某一类问题的算法是唯一的 ②算法必须在有限步操作之后停止
③算法的每一步操作必须是明确的,不能有歧义或模糊
④算法执行后一定产生确定的结果
A. 1 B. 2 C. 3 D. 4
2.程序框图符号“ ”可用于( )
A. 输出a=10 B. 赋值a=10 C. 判断a=10 D. 输入a=1
3.条件语句的一般形式如右图所示,其中B表示的是( )
A.条件 B.条件语句
C.满足条件时执行的内容 D.不满足条件时执行的内容
4.将两个数a=2, b= -6交换,使a= -6, b=2,下列语句正确的是( )
A. B. C. D.
5.x=5
y=6
PRINT x+y=11
END
上面程序运行时输出的结果是( )
A.xy=11 B.11 C.xy=11 D.出错信息
6.图中程序运行后输出的结果为( )
A.3 43 B.43 3
C.-18 16 D.16 -18
7.给出以下一个算法的程序框图
(如图所示),该程序框图的功能是
A.求输出a,b,c三数的最大数
B. 求输出a,b,c三数的最小数
C.将a,b,c按从小到大排列
D. 将a,b,c按从大到小排列
8.用秦九韶算法求多项式, 当时的值的过程中,
做的乘法和加法次数分别为( )
A.4,5 B.5,4 C.5,5 D.6,5
9.阅读下面的流程图,若输入的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
10.如果下边程序执行后输出的结果是990,那么在程序中
UNTIL后面的“条件”应为( )
A. i>10
B. i<8
C. i<=9
D. i<9
11.右边程序运行的结果是( )
A.17
B.19
C.21
D.23
12.如右图所示的程序是用来( )
A.计算3×10的值 B.计算的值
C.计算的值 D.计算1×2×3×…×10的值
13.为了在运行下面的程序之后得到输出16,键盘输入x应该是( )
INPUT x
IF x<0 THEN
y=(x+1)(x+1)
ELSE
y=(x-1)(x-1)
END IF
PRINT y
END
A. 3或-3 B. -5 C.5或-3 D.5或-5
14.计算机中常用十六进制,采用数字0~9和字母A~F共16个计数符号与十进制得对应关系如下表:
16进制 0 1 2 3 4 5 6 7 8 9 A B C D E F
10进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
例如用十六进制表示有D+E=1B,则A×B=( )
A.6E B.7C C.5F D.B0
二、填空题(本大题共6小题,每小题4分,共24分)
15.下列各数 、 、 、中最小的数是___________
16.将二进制数101 101(2) 化为八进制数,结果为 .
17.(如图所示)程序框图能判断任意输入的正整数x是奇数或是偶数。其中判断框内的条件是_______________
18.写出利用公式 1+2+3+……+n=,
计算 1+2+3+4+5+6+……+100 的一个算法.
第一步 ① ,
第二步 ② ,
第三步 输出计算结果 .
19. 读下面程序,该程序所表示的函数是
20.右边程序输出的n的值是_____________________.
三、解答题(本大题分4小题共56分)
21.(1)(I)用辗转相除法求840与1 764的最大公约数.
(II)用更相减损术求440 与556的最大公约数
(2) 用秦九韶算法计算函数时的函数值。(要求有过程)
22.(本小题14分)执行右图中程序,回答下面问题。
(1)若输入:m=30,n=18,则输出的结果为:________
(2)画出该程序的程序框图。
23.(本小题14分)设计算法求的值.要求画出程序框图,
参考答案
一、选择题:CBCBDAB CADCCDA
二、填空题:15、 16、 4 17、m=0
18、①取n=100 ②计算 19、 20、3
三、解答题:
21、解:(1) ∵1147=888×1+259
888=259×3+111
259=111×2+37
111=37×3
∴ 888和1147的最大公约数是37.
(2)254
22、解: (1) 6
(2)
23、
解 这是一个累加求和问题,
共99项相加,可设计一个计数
变量,一个累加变量,用循环
结构实现这一算法.程序框图
如下图所示
A
B
示意图
输入n
flag=1
p
A
B
Y
N
A
成立
不成立
P
当型循环结构 直到型循环结构
成立
不成立
P
A
开始
从A点出发作一条与AB不平行射线AC
在射线上任取一个不同于端点A的点C,取AC为单位线段,
再在AC上顺次取点E、F、G、D,满足CE=EF=FG=GD=AC
连结BD
过点C作BD的平行线交AB于点M,点M即为5等分点
结束
Y
N
结 束
开始
输入a,b,c
△≥0?
输出无实根
输出有实根
△=b2-4ac
开始
n=n+2
s=0, n=2, i=1
i=i+1
s=s+1/n
输出s
结束
开始
结束
输出a
a=c
a>c
a=b
a>b
输入a,b,c
开始
输入
除以2的余数
输出“是偶数”
输出“是奇数”
结束
结束
输出
开始
if A then B
else
C
a=b
b=a
a=c
c=b
b=a
b=a
a=b
c=a
a=b
b=c
x=-1
y=20
IF x<0 THEN
x=y+3
ELSE
y=y-3
END IF
PRINT x-y ;y+x
END
(第6题)
i=11
s=1
DO
s=s*i
i=i-1
LOOP UNTIL “条件”
PRINT S
END (第10题)
程序:S=1
I=1
WHILE I<=10
S=3*S
I=I+1
WEND
PRINT S
END
(第12题)
i=1
WHILE i<8
i=i+2
s=2*i+3
WEND
PRINT s
END
(第11题)
结 束
开 始
输入 x
m = x除以2的余数
是
否
输出“x是偶数”
输出“x是奇数”
j=1
n=0
WHILE j<=11
j=j+1
IF j MOD 4=0 THEN
n=n+1
END IF
j=j+1
WEND
PRINT n
END
(第20题)
INPUT x
IF x<0 THEN
y= -x+1
ELSE
IF x=0 THEN
y=0
ELSE
y=x+1
END IF
END IF
PRINT y
END (第19题)
INPUT“m=”;m
INPUT“n=”;n
DO
r=m MOD n
m=n
n=r
LOOP UNTIL r=0
PRINT m
END
第23题
程序框图
S=0
K=1
WHILE K<=99
s=s+k2
k=k+1
WEND
PRINT s
END
(第23题程序)