章末复习
学习目标 1.加深对算法思想的理解.2.加强用程序框图清晰条理地表达算法的能力.3.进一步体会由自然语言到程序框图再到程序的逐渐精确的过程.
1.算法、程序框图、程序语言
(1)算法的概念:算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或看成按要求设计好的有限的、确切的计算序列,并且这样的步骤或序列能够解决一类问题.
(2)程序框图:程序框图由程序框组成,按照算法进行的顺序用流程线将程序框连接起来.结构可分为顺序结构、条件结构和循环结构.
(3)算法语句:基本算法语句有输入语句、输出语句、赋值语句、条件语句、循环语句五种,它们对应于算法的三种逻辑结构:顺序结构、条件结构、循环结构.用基本语句编写程序时要注意各种语句的格式要求,条件语句应注意IF与THEN、END_IF配套使用,缺一不可,而ELSE可选;循环语句应注意循环条件的准确表达以及循环变量的步长设置.
2.算法案例
本章涉及的辗转相除法、更相减损术是用来求两个正整数的最大公约数的,秦九韶算法是用来计算多项式的值的,二进制在计算机上的应用受到我国周易八卦的影响和启发,都是我国古代灿烂的数学文明的体现.对这些案例,应该知其然,还要知其所以然,体会其中蕴含的算法思想.
题型一 算法设计
例1 求两底面直径分别为2和4,且高为4的圆台的表面积及体积,写出解决该问题的算法.
解 算法如下:
第一步,取r1=1,r2=2,h=4.
第二步,计算l=.
第三步,计算S=πr+πr+π(r1+r2)l与V=π(r+r+r1r2)h.
第四步,输出计算结果.
反思感悟 设计解决具体问题的算法的一般步骤
(1)认真分析所给的问题,找出解决该类问题的一般方法.
(2)借助于一般变量或参数对算法进行描述.
(3)将解决问题的过程分解为若干个步骤.
(4)用简洁的语言将各个步骤表述出来.
跟踪训练1 已知函数y=2x4+8x2-24x+30,写出连续输入自变量的11个取值,分别输出相应的函数值的算法.
解 算法如下:
第一步,输入自变量x的值.
第二步,计算y=2x4+8x2-24x+30.
第三步,输出y.
第四步,记录输入次数.
第五步,判断输入的次数是否大于11.若是,则结束算法;否则,返回第一步.
题型二 程序框图的识图与画法
例2 (1)执行如图所示的程序框图,如果输入的a=4,b=6,那么输出的n等于( )
A.3B.4C.5D.6
答案 B
解析 执行第一次循环的情况是:a=2,b=4,a=6,s=6,n=1;执行第二次循环的情况是:a=-2,b=6,a=4,s=10,n=2,执行第三次循环的情况是:a=2,b=4,a=6,s=16,n=3,执行第四次循环的情况是:a=-2,b=6,a=4,s=20,n=4.根据跳出循环体的判断条件可知执行完第四次跳出循环体,输出n的值,n的值为4.
(2)已知函数f(x)=试画出求f(f(x))的值的程序框图.
解 算法的程序框图如图所示.
反思感悟 程序框图的画法规则
(1)使用标准的图形符号.
(2)框图一般按从上到下、从左到右的方向画.
(3)除判断框外,大多数流程图符号只有一个进入点和一个退出点.判断框是具有超过一个退出点的唯一符号.
(4)判断框分两大类,一类判断框是“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果.
(5)在图形符号内描述的语言要简练、清楚.
跟踪训练2 (1)执行如图所示的程序框图,输出的S值为( )
A.8B.9C.27D.36
答案 B
解析 ①S=0+03=0,k=0+1=1,满足k≤2;
②S=0+13=1,k=1+1=2,满足k≤2;
③S=1+23=9,k=2+1=3,不满足k≤2,输出S=9.
(2)画出计算S=1·22+2·23+3·24+…+10·211的值的程序框图.
解 程序框图如图所示.
题型三 算法语言
例3 (1)执行下列语句.分别输入8,4和2,4,则两次执行该语句的输出结果分别为( )
INPUT A,B
IF A>B THEN
C=
ELSE
C=
END IF
PRINT C
END
A.8,2B.8,4C.4,2D.4,4
(2)阅读下面的程序:
INPUT n
i=1
S=1
WHILE i<=n
S=S*i
i=i+1
WEND
PRINT S
END
在执行上面的程序时如果输入6,那么输出的结果为( )
A.6B.720C.120D.1
答案 (1)C (2)B
解析 (1)输入8,4时,满足A>B,则C===4;输入2,4时,满足A≤B,则C===2.
(2)经过第一次循环得到S=1,i=2;
经过第二次循环得到S=2,i=3;
经过第三次循环得到S=6,i=4;
经过第四次循环得到S=24,i=5;
经过第五次循环得到S=120,i=6;
经过第六次循环得到S=720,i=7,此时不满足循环的条件,输出S.故选B.
反思感悟 (1)在用WHILE语句和UNTIL语句编写程序解决问题时,一定要注意它们的格式及条件的表述方法.WHILE语句中是当条件满足时执行循环体,而UNTIL语句中是当条件不满足时执行循环体.
(2)循环语句主要用来实现算法中的循环结构,处理一些需要反复执行的运算任务,如累加求和,累乘求积等.
跟踪训练3 (1)下列算法语句为一个求50个数的平均数的程序,在横线上应填入的语句为( )
INPUT x
S=0
i=1
DO
S=S+x
i=i+1
LOOP UNTIL
a=S/50
PRINT a
END
A.i>50B.i<50C.i>=50D.i<=50
(2)根据下列算法语句,当输入a,b的值分别为2,3时,最后输出的m的值是________.
INPUT a,b
IF a>b THEN
m=a
ELSE
m=b
END IF
PRINT m
END
答案 (1)A (2)3
解析 (1)由已知的程序语句可得这是一个直到型循环,当满足条件时退出循环.
由于第一次判断条件时i的值等于2,
故第五十次判断条件时i的值等于51,
即i≤50时继续循环,
故横线上应填入的语句为“i>50”.
(2)因为该算法的设计目的是输出a,b中较大的数,且a=2,b=3,较大的数是3,所以输出的m的值为3.
多项式求值
典例 用秦九韶算法求多项式f(x)=4x5+3x4+5x3+x2+x当x=2时的值.
解 因为f(x)=((((4x+3)x+5)x+1)x+1)x,
所以v0=4,
v1=4×2+3=11,
v2=11×2+5=27,
v3=27×2+1=55,
v4=55×2+1=111,
v5=111×2=222.
所以当x=2时,
多项式f(x)=4x5+3x4+5x3+x2+x的值为222.
[素养评析] (1)利用秦九韶算法可以求多项式的值.秦九韶算法的意义在于将多项式求值规范化、程序化、这是算法案例的一个重要内容.
(2)在求多项式的值时,依据秦九韶运算法则,设计运算程序,求得运算结果,充分体现了数学运算的核心素养.
1.如图所示,程序框图的输出结果是( )
A.3B.4C.5D.8
答案 B
解析 当x=1,y=1时,满足x≤4,
则x=2,y=2;
当x=2,y=2时,满足x≤4,
则x=2×2=4,y=2+1=3;
当x=4,y=3时,满足x≤4,
则x=2×4=8,y=3+1=4;
当x=8,y=4时,不满足x≤4,
则输出y=4.
2.如图,程序框图所进行的求和运算是( )
A.1+++…+ B.1+++…+
C.+++…+ D.+++…+
答案 C
解析 因为i是计数变量,n是计算变量.
当i=1时,s=;
当i=2时,s=+;
…;
当i=11时,跳出循环.故选C.
3.若输入t=8,则下列程序执行后输出的结果是________.
INPUT t
IF t<=8 THEN,
c=0.2
ELSE
c=0.2+0.1*?t-3?
END IF
PRINT c
END
答案 0.2
解析 t=8满足条件“t<=8”,执行“c=0.2”.
4.程序如下:
INPUT “a,b,c=”;a,b,c
a=b
b=c
c=a
PRINT a,b,c
END
若输入10,20,30,则输出结果为________.
答案 20,30,20
解析 给a,b,c赋初值分别为10,20,30,执行“a=b”后a的值为20,执行“b=c”后b的值为30,执行“c=a”后c的值为20.故答案为20,30,20.
5.如图是某算法的程序框图,则程序运行后输出的结果是________.
答案 10
解析 程序运行后,s=0+(-1)1+1=0,n=2;
s=0+(-1)2+2=3,n=3;
s=3+(-1)3+3=5,n=4;
s=5+(-1)4+4=10>9,
故输出的结果是10.
1.算法往往是把问题的解法划分为若干个可执行的步骤,有些步骤甚至重复多次,但最终都必须在有限个步骤之内完成.
2.对程序框图的考查之一是程序的运行结果;考查之二是补全程序框图中的条件或循环体等.
3.算法设计和程序框图是程序设计的基础,编写程序的基本方法是“自上而下,逐步求精”.