(共37张PPT)
第11章 算法初步
本部分内容讲解结束
按ESC键退出全屏播放
A
算法
算法与程序
程序框图
框图
顺序结构
算法的基本
逻辑结构
条件结构
循环结构
输入语句、输出语句
赋值语句
算法初步
基本算
条件语句
法语句
循环语句
辗转相除法与更相减损术
算法案例
秦九韶算法
中国剩余定理
匚分法
》知识网络体系构建
理清脉络·宏观把握
知识要点·易错提醒
温故知新·夯实基础
专题突破·链接高考
聚焦考点·拓展升华
开始
i=1
S=0
99否
是
S=s+
1
i=i+2
输出S
束
开始
输入n
=0,t=1,k=1,D=1
1否
p=stt
s=t,
t=p
1=h1
输出p
结束
开始
v1=
2
x2=3
m=(x1+x2)2
y=m2-5
否
y>0
<0
是
x2=m0
是
W1=n
2-xk<0001
否
是
输出m
(结束
[巩固提升训练]
开始
输入x,h
是
x0否
否
x<1
0
r-u
y
输出y
x=9+h
否
x≥2
是
结束
开始)
i=1
S=0
x=0
m=1
i=i+1
a=139500
m=1056m
元≤10
否
m
是
-
输出x
(结束章末复习提升课
1.算法的特征
(1)可执行性;(2)确定性;(3)有穷性.
2.程序框图的画法与应用
(1)程序框图是用规定的图形和指向线来准确、直观、形象地表示算法的图形.设计程序框图时,要先进行算法分析,建立相应的数学模型或过程模型,设计出合理有效的算法,确定算法的逻辑结构和各步的功能后再画程序框图,同时要考虑到编写程序的要求.读、画程序框图是高考在本章中考查的重点.
(2)如果设计的程序框图较为复杂,就要采取“逐步求精”的思想,先将问题中的简单部分明确出来,再逐步对复杂部分进行细化,然后一步一步向前推进.
3.算法语句设计的注意点
(1)条件语句主要用于需要进行条件判断的算法.循环语句主要用于含有一定规律的计算,在使用时需要设计合理的计数变量.
(2)两种循环语句在设计时,要注意当型和直到型的一般格式,注意循环体的确定以及循环终止条件的确定.
(3)在设计整个问题的算法语句时,可能既有条件语句又有循环语句,因此要注意几种语句的书写格式.
1.输入语句和赋值语句二者的不同
输入语句可使初始值与程序分开,利用输入语句改变初始数据时,程序不变,而赋值语句是程序的一部分,输入语句可对多个变量赋值,赋值语句只能给一个变量赋值.
2.程序设计中的注意点
程序设计中特别注意:条件语句的条件表达和循环语句的循环变量的取值范围.
三种算法语言的转换[学生用书P25]
三种算法表述——自然语言、框图语言、程序语言之间是密切联系的,它们之间可相互转换.
下列是某个问题的算法,将其改为伪代码,并画出程序框图.
算法:
S1:令i=1,S=0;
S2:若i≤999成立,
则执行S3;
否则,输出S,
结束算法;
S3:S=S+;
S4:i=i+2,
返回第二步.
【解】 伪代码如下
S=0i=1WHILE i<=999 S=S+1/i i=i+2WENDPRINT SEND
程序框图如下:
【点评】 无论用哪种语言表示算法,都要通过“试运行”来检查是否严谨的解决问题.
程序框图及应用[学生用书P25]
执行如图所示的程序框图,如果输入的n是4,则输出的p是( )
A.8
B.5
C.3
D.2
【解析】 n=4,s=0,t=1,
k=1,p=1,1<4,
p=0+1=1,s=1,t=1;
k=2,2<4,p=1+1=2,s=1,t=2;
k=3,3<4,p=1+2=3,
s=2,t=3;
k=4,4<4不成立,输出p=3.
【答案】 C
【点评】 本题考查对循环结构程序框图的理解和应用.属当型循环结构,当n=4时退出循环.
用算法语句描述伪代码[学生用书P25]
基本算法语句有输入语句、输出语句、赋值语句、条件语句和循环语句五种,主要对应顺序结构、条件结构和循环结构.明确各语句的功能和格式,是执行伪代码的关键,掌握常用的算法对理解伪代码也很有帮助,用算法语句编写伪代码时,一般先画程序框图.
已知函数f(x)=x2-5,写出求方程f(x)=0在[2,3]上的近似解(精确到0.001)的伪代码.
【解】 本题可用二分法来解决,
设x1=2,x2=3,m=.
步骤如下:
S1:x1=2,x2=3;
S2:m=(x1+x2)/2;
S3:计算f(m),
如果f(m)=0,
则输出m;
如果f(m)>0,
则x2=m,否则x1=m;
S4:若|x2-x1|<0.001,
输出m,
否则返回S2.
程序框图如图所示:
伪代码如下:
x1=2x2=3DO
m=(x1+x2)/2
y=m∧2-5
IF y>0 THEN x2=m ELSE IF y<0 THEN x1=m END
IFEND
IFLOOP UNTIL ABS(x2-x1)<0.001 OR
y=0PRINT mEND
【点评】 循环语句有两种:WHILE语句和UNTIL语句,编写程序解决问题时,一定要注意格式及条件的表达方法.
算法在实际问题中的应用[学生用书P26]
算法的基本思想在我们的日常生活中是很有用的,随着计算机技术的发展,计算机技术在实际生活中的应用越来越广泛,特别是尖端科学技术更离不开它,算法在计算机科学和数学领域都有非常重要的地位.为此,我们在理解算法的基础上,要有意识地将算法思想应用到日常生活中,这样有利于提高解决具体问题的能力.
一个小朋友在一次玩皮球时,偶然发现一个现象:球从某高度落下后,弹回原高度的,再落下,再反弹回上次高度的,如此反复.假设球从100
cm的高处落下,那么第10次下落的高度是多少?在第10次落地时共经过多少路程?试用伪代码表示求解该问题的算法.
【解】 伪代码如下:
S=0h=100S=S+hi=2WHILE i<=10
h=h/3
S=S+2
h
i=i+1WENDPRINT “第10次下落的高度为:”;hPRINT “第10次落地时共经过的路程为:”;SEND
【点评】 本题实际上是算法解决数列100,,…的和,当然也可以用UNTIL语句.
1.如果执行如图所示的程序框图,输入x=-2,h=0.5,那么输出的各个数的和等于( )
A.3
B.3.5
C.4
D.4.5
解析:选B.输入x=-2时,y=0,执行x=x+0.5后x=-1.5.
当x=-1.5时,y=0,执行x=x+0.5后x=-1.
当x=-1时,y=0,执行x=x+0.5后x=-0.5.
当x=-0.5时,y=0,执行x=x+0.5后x=0.
当x=0时,y=0,执行x=x+0.5后x=0.5.
当x=0.5时,y=0.5,执行x=x+0.5后x=1.
当x=1时,y=1,执行x=x+0.5后x=1.5.
当x=1.5时,y=1,执行x=x+0.5后x=2.
当x=2时,y=1,此时2≥2,因此结束循环.
故输出各数之和为0+0+0+0+0+0.5+1+1+1=3.5.
2.给出如下伪代码:
INPUT “实数”;x1,y1,x2,y2a=x1-x2m=a∧2b=y1-y2n=b∧2s=m+nd=SQR(s)PRINT dEND
此伪代码的功能为( )
A.求点到直线的距离
B.求两点之间的距离
C.求一个多项式函数的值
D.求输入的值的平方和
解析:选B.输入的四个实数可作为两个点的坐标,程序中的a,b分别表示两个点的横、纵坐标之差,而m、n分别表示两点横、纵坐标之差的平方;s是横、纵坐标之和的平方和,d是平方和的算术平方根,即两点之间的距离,最后输出此距离.
3.如图所示的伪代码,若输入a=3,b=-1,n=5,则输出的是 .
INPUT“a=”;aINPUT“b=”;bINPUT“n=”;ni=1DO c=a+b a=b b=c i=i+1LOOP UNTIL i>n-2PRINT“c=”;cEND
解析:当i=1时,c=2,a=-1,b=2;
当i=2时,c=1,a=2,b=1;当i=3时,c=3,a=1,b=3,此时i=4.因为n=5,所以n-2=3,此时循环结束,c=3.
答案:c=3
4.陈老师购买安居工程集资房62
m2,单价为3
000元/m2,一次性国家财政补贴27
900元,学校补贴18
600元,余款由个人负担.房地产开发公司对教师实行分期付款(注①),每期为一年,等额付款.签订购房合同后一年付款一次,再经过一年又付款一次,共付10次,10年后付清.如果按年利率5.6%,每年按复利计算(注②),那么每年应付款多少元?画出程序框图,并写出计算所需的伪代码.
注:①各期所付款的本息和的总和,应等于个人负担的购房余款的本息和.
②每年按复利计算,即本年利息计入次年的本金中生息.
解:设每年应付款x元,那么
第一年付款的本息和为x×1.0569元
第二年付款的本息和为x×1.0568元,
…
第九年付款的本息和为x×1.056元,
第十年付款为x元.
所以各期所付款的本息和的总和为
x(1+1.056+1.0562+…+1.0569).
所购房余款的本息和为
[3
000×62-(27
900+18
600)]×1.05610
=139
500×1.05610,
故有x(1+1.056+1.0562+…+1.0569)
=139
500×1.05610.
程序框图如图所示:
伪代码如下:
i=1S=0x=0m=1a=139
500WHILE i<=10 S=S+m m=m
1.056 i=i+1WENDx=a
m/SPRINT xEND
PAGE
1(共47张PPT)
章末综合检测(11)
本部分内容讲解结束
按ESC键退出全屏播放
A
开始
n=0S=0
n=m+1
S=st
2n-13
S0否
是
输出n
(结束
开始
输入
x。孔
1=0,s=0
输入a
S=SM
+a
1=h+1
否
ken
输出s
结束
开始
输入x
否
x|>3
是
n=
3
y=2
输出y
结束
元=1,S=0
i=i+1
是奇数
否
S=21+1
是
S<10
输出讠
结束
开始
输入t
S=1,x=0,m=
m=,n=n+1
是
S>t
输出n
输入讠
S=0,n=0
n是
S=S+2n+1
输出S
n=n+1
结束
开始
输入x
是
x>0
y=2
是
否
x<1
y=5x
=x+7
输出y
结束
开始
=1
S=0
j=0
输入x
x>80
是
S=stx
否
j=j+1
元+1
否
i>15
是
P=
输出P
结束
(开始
元=1
r为24除以余数
否
=0
是
输出i
i=i+1
元>24
是
结束
开始
输入ad,k
S=0i=1
否
i是
输出S/S=S+
a(a+4)
结束
a=a+d
i=i+1章末综合检测(11)
(时间:120分钟,满分:150分)
一、选择题:本题共12小题,每小题5分,在每小题给出的四个选项中,只有一项是符合题目要求的.
1.下列关于算法的叙述不正确的是( )
A.在任何数值计算或非数值计算的过程中所采取的方法和步骤,都可称之为算法
B.计算机解决问题的方法和步骤,就是计算机的算法
C.算法并不给出问题的精确的解,只是说明怎样才能得到解
D.算法中执行的步骤可以是无限次数的,能无休止地执行下去
解析:选D.由算法的基本概念知D不正确.算法必须在有限步内完成,不能成为死循环(即无休止地循环).
2.在设计求函数f(x)=的值的程序中不可能用到的算法语句为( )
A.输入语句
B.条件语句
C.输出语句
D.循环语句
解析:选D.对于分段函数的算法,输入语句和输出语句都是需要的,条件语句也是需要的,只有循环语句不可能用到,故选D.
3.语句“PRINT
26
MOD
7”运行时输出的结果为( )
A.3
B.4
C.5
D.6
解析:选C.因为26=3×7+5,所以输出的结果是5.
4.执行下面的伪代码输出的结果是( )
i=1s=0WHILE i<=4 s=s
2+1 i=i+1WENDPRINT sEND
A.3
B.7
C.15
D.17
解析:选C.当i=1时,s=0×2+1=1;当i=2时,s=1×2+1=3;当i=3时,s=3×2+1=7;当i=4时,s=7×2+1=15.
5.
执行如图所示的程序框图,若输出的结果为14,9,23,28,则输入的a、b、c、d的值分别为( )
A.4,6,1,7
B.7,6,1,4
C.6,4,1,7
D.1,6,4,7
解析:选C.由题意得,
解得.故选C.
6.
如图所示,输出的n为( )
A.10
B.11
C.12
D.13
解析:选D.程序依次运行过程为:n=0,S=0;
n=1,S==-;
n=2,S=-+
=--,…
所以S=------1+1++++++>0,
此时输出n的值为13.
7.阅读如图的伪代码,该伪代码的功能是( )
s=1i=1WHILE i<=10 s=i
s i=i+1WENDPRINT “s=”;sEND
A.计算3×10的值
B.计算310的值
C.计算39的值
D.计算1×2×3×…×10的值
解析:选D.循环变量初始值为1,终止值为10,
i=1时,s=1;
i=2时,s=2×1;
i=3时,s=3×2;
故输出的是1×2×3×…×10的值.
8.中国古代有计算多项式值的秦九韶算法,如图是实现该算法的程序框图.执行该程序框图,若输入的x=2,n=2,依次输入的a为2,2,5,则输出的s=( )
A.7
B.12
C.17
D.34
解析:选C.法一:第一步,a=2,s=0×2+2=2,k=1;第二步,a=2,s=2×2+2=6,k=2;第三步,a=5,s=6×2+5=17,k=3>2,跳出循环.故输出的s=17.
法二:由秦九韶算法的意义可知s=f(x)=[(0×x+2)x+2]x+5=2x2+2x+5,故输出的s=f(2)=17.
9.有324,243,270三个数,则它们的最大公约数是( )
A.81
B.27
C.9
D.3
解析:选B.由324=243×1+81,243=81×3+0知,324与243的最大公约数为81.
又因为270=81×3+27,81=27×3+0,
所以这三个数的最大公约数是27.
10.阅读如图所示的程序框图,若输入x的值为-4,则输出y的值为( )
A.0.5
B.1
C.2
D.4
解析:选C.当x=-4时,|x|=4>3,x赋值为x=|-4-3|=7>3,所以x赋值为x=|7-3|=4>3,x再赋值为x=|4-3|=1<3,则y=21=2,输出2.
11.阅读下面程序框图,如果输出i=5,那么在空白矩形框中应填入的语句为( )
A.S=2i-2
B.S=2i-1
C.S=2i
D.S=2i+4
解析:选C.当空白矩形框中应填入的语句为S=2i时,程序在运行过程中各变量的值如下所示:
i S 是否继续循环
循环前 1 0
第一次循环2 5 是
第二次循环3 6
是
第三次循环4 9
是
第四次循环5 10
否
故输出的i值为5,符合题意.故选C.
12.执行如图所示的程序框图,如果输入的t=0.01,则输出的n=( )
A.5
B.6
C.7
D.8
解析:选C.经推理分析可知,若程序能满足循环,则每循环一次,S的值减少一半,循环6次后S的值变为=>0.01,循环7次后S的值变为=<0.01,此时不再满足循环的条件,所以结束循环,于是输出的n=7.
二、填空题:本题共4小题,每小题5分.
13.阅读下面的伪代码:
INPUT “x=”;xIF x<0 THENy=x+3ELSE IF x>0 THENy=x+5 ELSEy=0 END
IFEND
IFPRINT yEND
如果输入x=-2,则输出的结果y为 W.
解析:本伪代码是求分段函数
y=的值.
输入x=-2,输出y=-2+3=1.
答案:1
14.下面是求一个函数的函数值的伪代码:
INPUT xIF x<=0 THEN y=-xELSE
IF x>0
AND
x<=1 THEN
y=0
ELSE
y=x-1
END
IFEND
IFPRINT
yEND
若执行此伪代码的结果为3,则输入的x值为 W.
解析:此伪代码是求函数y=
的值.若输出的结果为3,则有可能x-1=3即x=4,或-x=3即x=-3.
答案:4或-3
15.执行如图所示的程序框图,则输出i的值为 W.
解析:由a=1,i=0→i=0+1=1,a=1×1+1=2→i=1+1=2,a=2×2+1=5→i=2+1=3,a=3×5+1=16→i=3+1=4,a=4×16+1=65>50,所以输出4.
答案:4
16.某程序框图如图所示,若使输出的结果不大于37,则输入的整数i的最大值为 W.
解析:S=(20+1)+(21+1)+(22+1)+…+(2i-1+1).
当i=1时,S=2;
当i=2时,S=2+3=5;
当i=3时,S=2+3+5=10;
当i=4时,S=2+3+5+9=19;
当i=5时,S=2+3+5+9+17=36;
当i=6时,S=2+3+5+9+17+33=69>37.
所以,i的最大值为5.
答案:5
三、解答题:解答应写出文字说明、证明过程或演算步骤.
17.(本小题满分10分)用秦九韶算法计算函数f(x)=2x5+3x4+2x3-4x+5当x=2时的函数值.
解:根据秦九韶算法,把多项式改写成如下形式:
f(x)=((((2x+3)x+2)x+0)x-4)x+5.
从内到外依次计算一次多项式当x=2时的值:v0=2;
v1=2×2+3=7;
v2=v1×2+2=16;
v3=v2×2+0=32;
v4=v3×2-4=60;
v5=v4×2+5=125.
所以,当x=2时,多项式的值等于125.
18.(本小题满分12分)写出求函数f(x)=的函数值的伪代码.并画出相应的程序框图.
解:伪代码如下:
INPUT xIF x>0
THENy=x∧2-1ELSEIF x<1 THEN y=5
xELSE y=x+7END IFEND IFPRINT yEND
程序框图如图所示.
19.(本小题满分12分)以下是某次数学考试中某班15名同学的成绩(单位:分):72,91,58,63,84,88,90,55,61,73,64,77,82,94,60.要求用程序框图将这15名同学中成绩高于80分的同学的平均分数求出来.
解:程序框图如图所示:
20.(本小题满分12分)分别用WHILE语句和UNTIL语句编写伪代码,求出使不等式12+22+32+…+n2<1
000成立的n的最大整数值.
解:利用WHILE语句编写伪代码如下:
s=1i=2WHILE s<1
000 s=s+i∧2 i=i+1WENDi=i-2PRINT
“使不等式成立的n的最大整数值为:”;iEND
利用UNTIL语句编写伪代码如下:
s=1i=2DO s=s+i∧2 i=i+1LOOP UNTIL s>=1
000i=i-2PRINT “使不等式成立的n的最大整数值为:”;iEND
21.(本小题满分12分)编写伪代码,求出24的所有正约数.
解:程序框图如图所示:
伪代码:
i=1DO r=24 MOD i IF r=0 THEN PRINT i END
IF i=i+1LOOP UNTIL i>24END
22.(本小题满分12分)已知用户甲的电脑被某黑客乙入侵.黑客乙为了窃取甲的重要帐户的用户名和密码,在甲的电脑中植入了如程序框图所示的电脑程序,在甲每次登陆其重要帐户之前,电脑先执行此程序,让甲输入其用户名a,密码d和一个随机的验证码k(a、d、k均为正实数),因为甲的用户名和密码受到保护,所以乙每次只能看到验证码k和输出结果S.某一天甲登陆了两次其重要账户,乙看到当k=2时S=,k=5时,S=.乙能否由此信息确定甲重要帐户的用户名和密码?若能确定,请求出a和d的值;若不能确定,请说明道理.
解:能确定,记输入的a值为a1,在程序运行的过程中,以后变量a取到的值分别记为a2,a3,…,这样得到一个数列{an},
当k=2时,S==;
当k=5时,S=+++=,
即+++==,
由
得,
所以,
即a=1,d=2.
PAGE
1